쿠버네티스에서 모니터링 시스템을 구착한다면 많은 사람들이 Prometheus를 사용합니다.
동시에 Grafana, AlertManager 등과 같은 솔루션을 연동해서 사용하는 편입니다.
그 중 Prometheus에 대해서 공부해봤습니다.
Prometheus는 메트릭 수집, 시각화, 알림 기능을 모두 제공하는 오픈 소스 모니터링 시스템입니다.
Pull방식으로 메트릭을 수집하며, 시계열 데이터를 저장합니다.
Node Exporter가 설치된 머신의 CPU, Memory 등의 메트릭 정보를 수집하고,
Client Library는 애플리케이션 코드를 계측하기 위해 쓰입니다.
다른 것들도 많지만 주로 Node Exporter를 많이 사용하는 것으로 보입니다.
시각화 영역으로는 Grafana를 많이 쓰기에 제가 이해하기로는 이렇습니다
Prometheus로 CPU, Memory와 같은 자원들의 정보를 수집합니다.
수집할때는 Pull의 방식으로 Prometheus가 계속해서 수집하며 이 시계열 데이터 즉, 시간의 순서에 따른 데이터들을
Grafana를 이용하여 그래프와 같은 시각적으로 표시합니다.
<Prometheus 공식문서 소개 및 개념 정리 >
Prometheus는 SoundCloud에서 구축된 오픈소스 시스템 모니터링 및 경고 툴킷입니다.
2016년에 Cloud Native Computing Foundation에 합류했습니다.
Prometheus는 메트릭을 시계열 데이터로 수집하고 저장합니다.
메트릭 정보는 레이블이라는 선택적 키-값 쌍과 함께 기록된 타임스탬프와 함께 저장됩니다.
Prometheus 인프라는 여러 요소로 구성됩니다.
- 시계열 데이터를 스크랩하고 저장하는 메인 Prometheus서버
- 애플리케이션 코드를 계측하기 위한 클라이언트 라이브러리
- 단기 작업 지원을 위한 Pushgateway
- HAProxy, StatsD, Graphite등과 같은 서비스를 위한 특스 목적 내보내기
- 알람을 처리하는 Alertmanager
- 수집된 데이터를 시각화하는 Grafana
Prometheus는 순수한 숫자 시계열을 기록하는데에 강점이 있습니다.
또한 고가용성으로 만들 수 있기에 두대 이상의 개별 컴퓨터에서 동일한 Prometheus 서버를 실행할 수 있습니다.
Pull 방식인 이유는 이렇습니다.
- 변경사항을 개발할 때 랩톱에서 모니터링을 실행할 수 있습니다.
- 대상이 다운되었는지 더 쉽게 알 수 있습니다.
- 수동으로 대상으로 이동하여 웹 브라우저를 사용하여 대상의 사태를 검사할 수 있습니다.
- 푸시가 필요한 경우 Pushgateway를 제공합니다.
Node Exporter는 CPU, 메모리, 디스크, 네트워크 대여폭과 같은 메트릭 데이터를 수집할 수 있습니다.
Prometheus 클라이언트 라이브러리는 4가지 핵심 메트릭 유형을 제공합니다.
Coutner - 다시작할때만 값이 증가하거나 0으로 재설정될 수 있는 누적 메트릭입니다.
이를 사용하여 제공된 요청 수, 완료된 작업 또는 오류 수를 나타낼 수 있습니다.
Gauge - 임의로 오르내릴 수 있는 단일 숫자값을 나타내는 메트릭입니다.
일반적으로 온도, 메모리 사용과 같은 측정값에 사용됩니다.
Histogram - 관찰값을 샘플링하고 구성가능한 버킷에서 계산합니다.
Summary - 위와 유사하게 관찰을 샘플링합니다.
추후의 게시물에 Prometheus와 Grafana, AlertManager도 다룰 예정입니다.
'이론' 카테고리의 다른 글
CI / CD 란? (0) | 2022.04.08 |
---|---|
Grafana란? (0) | 2022.03.15 |
앤서블과 테라폼의 차이 (0) | 2022.03.14 |
DevOps란? (0) | 2022.03.05 |
URI와 URL의 차이 (0) | 2022.01.27 |