Prometheus 알아보기
Prometheus 상세히 알아보기
쿠버네티스 홈 서버를 구축하며 서버 상태를 모니터링하기 위해 Prometheus 와 Grafana를 무작정 구성하였다.
Prometheus 가 어떤 역할을 하는지 정리하기 위해 이 글을 작성한다.
Prometheus 는 무엇인가
Prometheus 는 애플리케이션/서버의 메터릭을 주기적으로 수집하고, 이를 시계열 데이터로 저장 후 조회할 수 있도록 하는 로그 수집 서비스이다.

- Metric Source
- short-lived jobs(배치/크론잡)는 Push Gateway 로 메트릭을 push 하여 메트릭을 수집합니다.
- 상시 실행 서비스는 /metrics 엔드포인트를 노출하고, Prometheus 서버가 이를 주기적으로 호출하여 메트릭을 수집합니다.
- Service Discovery
- K8s API 를 통해 Pod/Service/Endpoint를 자동으로 찾아 타깃 목록을 갱신합니다.
- K8s 또는 Cloud 환경이 아닌경우 file_sd를 통해 타깃 목록을 config 파일로 불러올 수 있습니다.
- Prometheus Server
- Retrieval: 로그를 타깃 서버에서 수집합니다.
- Service Discovery를 통해 대상을 가져온 후 Pull Metric 을 통해 데이터를 수집합니다.
- 일정한 주기로 데이터를 수집하고 이를 시계열 데이터베이스에 저장합니다.
- TSDB(TimeSeries Database): 시계열 데이터베이스에 수집한 데이터를 저장합니다.
- HTTP Server: 조회 API 및 웹 UI 를 제공합니다.
- Retrieval: 로그를 타깃 서버에서 수집합니다.
요약하자면
Prometheus 는 각 서비스에게서 Metric 를 제공받고, 이를 시계열 데이터베이스에 저장한다.
저장한 데이터를 PromQL를 통해 조회하여 Grafana 같은 도구를 통해 시각화 할 수 있다.
참고 주소