ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 모니터링 툴 프로메테우스(Prometheus) 알아보기
    devops 2025. 2. 23. 15:45

     

     

    프로메테우스

    안정적인 서버 운영을 위해 메트릭을 기반으로 모니터링과 알림을 제공해주는 오픈 소스 프로젝트이다.
    여러 도구들을 통해 분산환경에서도 쉽게 모니터링 구축이 가능하다. 

     

     

    1.메트릭이란?

    메트릭은 시스템 상태를 나타내는 측정값으로, CPU, 메모리, 디스크, 네트워크 사용량 등 리소스 사용 정보나 HTTP 상태 코드와 같은 데이터들을 포함한다. 이러한 메트릭을 시계열 데이터(time series data)로 저장하여 시간에 따른 변화 추이를 분석할 수 있다.

     



    2. 프로메테우스 아키텍처

     

     

    프로메테우스의 역할

     

    1.데이터 수집 (Scraping)
    Exporter 또는 애플리케이션에서 제공하는 /metrics 엔드포인트를 주기적으로 호출하여 메트릭 데이터를 수집한다.

    2.시계열 데이터베이스(TSDB)
    수집한 데이터를 시간 기준으로 key:value 형태로 저장한다.

    3.데이터 조회 및 시각화
    HTTP REST API를 통해 저장된 데이터를 외부 대시보드(Grafana)와 연동하여 시각화할 수 있다..

    또한, 서비스 디스커버리(Service Discovery) 기능을 활용해 동적으로 새로운 노드나 애플리케이션의 메트릭을 자동으로 수집가능하다.

     

     

     

     

    3.주요 구성요소 / 역할

    3-1. Exporter

    모니터링 대상(시스템, 어플리케이션) 메트릭을 프로메테우스가 읽을 수 있는 형태로 변환해주는 도구.

     

     

    • Node Exporter: 서버의 CPU, 메모리, 디스크, 네트워크 등 시스템 리소스 상태를 수집.
    • 그 외에도 데이터베이스, 메시징 시스템, 외부 클라우드 서비스 등 각기 다른 컴포넌트를 위한 Exporter들이 있다.

     



     

    3-2. Alert manager

    프로메테우스에서 발생한 알람을 관리하고, 사용자에게 알림을 전달.

     

    Alert manager 주요기능 3가지

     

    • Grouping
      비슷한 유형의 알람을 하나로 묶어 관리하며, 중복 알람을 방지합니다.
    • Inhibition
      특정 경고 발생 시 불필요한 관련 알람들을 억제한다.
    • Silences:
      정해진 기간 동안 알람을 음소거한다.

     

    알림 상태 3가지

     

    • inactive
      정상 상태
    • pending
      알람 전송 보류 상태 (일정 시간이 지나면 자동으로 firing 상태로 전환된다.)
    • firing
      알람 발생 상태 (조건에 따라 외부 시스템(이메일, 슬랙 등)으로 알림 전달)

     

     

    3-3. Prometheus 서버

    프로메테우스 서버의 역할

     

    • Retrieval
      Exporter나 애플리케이션의 /metrics 엔드포인트에서 데이터를 가져온다.
    • TSDB
      수집된 데이터를 시간 기준으로 저장하여 효율적인 조회와 분석을 지원.
    • HTTP Server
      REST API를 통해 저장된 데이터를 외부 시스템에서 조회할 수 있도록 하며, Grafana와 같은 대시보드 툴과 연동하여 시각화 작업을 용이하게 합니다.

     

     

    4. 고려사항(확장성, 가용성)



    확장성

    멀티 프로메테우스를 사용하게 된다면 중앙 프로메테우스에서 메트릭 수집.

    가용성

    프로메테우스를 단일 서버로 이용할 경우 다운타임동안(패치, 서버 재시작등 인한 서버중지시간) 데이터 로스가 발생할 수 있다.
    여러 프로메테우스 서버를 운영하여 빈 시간 없이 메트릭 수집한다면 데이터 로스 해결 가능.



     

     

    5. 프로메테우스의 가용성과 데이터 장기보관 (Thanos)

    프로메테우스의 기본 구조는 단기 데이터 저장 및 모니터링에 적합하다. 데이터를 장기간 보관하거나 여러 서버의 데이터를 통합 관리하기 위해서는 Thanos가 사용될 수 있다.

    Thanos의 주요 기능

    • 멀티 프로메테우스 조회
      여러 프로메테우스 서버나 클러스터에 걸쳐 쿼리를 수행할 수 있다.
    • 고가용성
      여러 프로메테우스 서버에서 수집한 메트릭 데이터를 병합하고, 중복 데이터를 제거하여 데이터를 효율적으로 관리한다.
    • 데이터 보관
      프로메테우스가 메모리 및 로컬 디스크에 저장한 데이터를 Thanos가 외부 스토리지(예: S3, GCS 등)로 이전하여 장기 보관이 가능하다.

     

     

    6. 프로메테우스 시각화

    Grafana와 연동


    수집된 메트릭 데이터는 Grafana와 같은 대시보드 툴을 사용하여 시각화할 수 있다. Grafana는 커스텀된 대시보드와 시각화 옵션들을 제공하여, 모니터링 데이터를 쉽게 분석가능하게 한다.

     

     



























Designed by Tistory.