카테고리 없음

Prometheus

컴투 2025. 5. 14. 12:01

Prometheus는 오픈소스 모니터링 및 경보 시스템으로, 주로 시계열 데이터(time-series data) 수집 및 분석에 사용됩니다. CNCF(Cloud Native Computing Foundation) 프로젝트이며, Kubernetes 환경에서 모니터링할 때 가장 널리 사용되는 도구 중 하나입니다.


🧭 Prometheus 정의

Prometheus는 메트릭 데이터를 Pull 방식으로 수집하며, 시계열 데이터 저장, 쿼리, 경고(Alerting)를 지원하는 모니터링 도구입니다.


🧩 Prometheus 구성요소

구성요소설명
Prometheus 서버 메트릭을 수집(Pull), 저장(TSDB), 쿼리(PromQL)
Exporter 애플리케이션/시스템에서 메트릭을 노출하는 HTTP 엔드포인트
Push Gateway 단기 작업(batch job)이 Push 방식으로 메트릭 전송 시 사용
Alertmanager 경고 조건이 발생했을 때 알림(이메일, 슬랙 등)을 전송
PromQL Prometheus 고유의 쿼리 언어로 메트릭을 필터링/분석
Service Discovery 동적으로 타겟을 찾아 메트릭을 수집 (ex. Kubernetes, Consul 등)
Storage (TSDB) 시계열 데이터 저장소 (내장 Time Series DB 사용)
 

🏗️ Prometheus 구조

lua
복사편집
+------------------+ | Web UI / API | +--------+---------+ | +-------v--------+ | Prometheus | ← 핵심 컴포넌트 | - TSDB | | - Scraper | | - PromQL | +-------+--------+ | +-----------+-------------+ | | +-------v--------+ +-------v--------+ | Exporter (Node)| ... | Exporter (App) | +----------------+ +----------------+ | +-------v-------+ | Alertmanager | +---------------+

주요 흐름:

  1. Prometheus는 **설정된 타겟(exporter)**에 주기적으로 접속하여 메트릭 데이터를 Pull.
  2. 수집된 데이터는 내부 TSDB에 저장됨.
  3. 사용자는 PromQL로 데이터를 조회하거나 시각화 도구(Grafana 등)와 연동.
  4. 사전 정의된 조건을 만족하는 경우 Alertmanager를 통해 경보 발생.

🔧 Exporter 예시

Exporter수집 대상
Node Exporter 리눅스 시스템 메트릭 (CPU, 메모리 등)
Blackbox Exporter 네트워크/HTTP 상태 확인 (ping, http)
MySQL Exporter MySQL DB 성능/상태
Custom Exporter 직접 작성한 앱에서 메트릭 노출
 

🛠️ 데이터 수집 방식: Pull vs Push

방식설명
Pull Prometheus가 메트릭을 주기적으로 가져옴 (기본 방식)
Push Push Gateway를 통해 수집 (주로 batch job용)
 

필요하시면 prometheus.yml 설정 예제나 Node Exporter 설치 방법도 도와드릴 수 있어요. 어떤 환경에서 Prometheus를 쓰시려 하나요? (예: 쿠버네티스, VM 등)

반응형