ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Prometheus & Grafana - 1) 개요
    Kubernetes 2025. 3. 23. 19:13

    Prometheus 란?

    https://prometheus.io/docs/introduction/overview/

    Prometheus는 메트릭을 수집된 작업에서 직접 또는 푸시 게이트웨이를 통해 간접적으로 가져옵니다. 수집된 데이터는 로컬에 저장되고, 규칙을 실행하여 데이터를 집계하거나 새로운 시간 시리즈를 생성하거나 알림을 생성합니다. 수집된 데이터는 Grafana와 같은 시각화 도구나 API 소비자를 통해 시각화할 수 있습니다.

     

     

    주요 특징

    • 다차원 데이터 모델

    Prometheus는 데이터를 '메트릭 이름'과 '키/값 쌍'으로 식별된 시간 순서대로 기록합니다. 예를 들어, 웹 서버의 응답 시간이나 데이터베이스의 활성 연결 수와 같은 데이터를 시간에 따라 기록합니다.

    • PromQL (쿼리 언어)

    Prometheus는 쿼리 언어인 PromQL을 사용하여 데이터를 조회합니다. 이 언어를 이용하면 다양한 조건으로 데이터를 필터링하고 분석할 수 있습니다.

    • 분산 저장소 없음

    Prometheus는 분산 시스템에 의존하지 않고, 각각의 서버가 독립적으로 동작합니다. 즉, 데이터를 중앙에서 관리하지 않고 각 서버에서 자체적으로 저장합니다.

    • 풀 모델로 데이터 수집

    Prometheus는 주기적으로 HTTP를 통해 데이터를 가져옵니다(즉, '풀' 방식). 이를 통해 데이터 수집을 효율적으로 처리합니다.

    • 푸시 모델 지원

    이터를 '푸시'하는 방식도 지원합니다. 이때, 중개 서버인 푸시 게이트웨이를 사용하여 데이터를 전달합니다.

    • 대상 자동 발견

    Prometheus는 서비스 발견 기능을 통해 자동으로 모니터링 대상을 찾거나, 수동으로 설정할 수도 있습니다.

    • 다양한 그래프 및 대시보드

    데이터를 시각적으로 표현하기 위해 다양한 그래프 및 대시보드를 만들 수 있습니다.

     

     

    메트릭(Metrics) 이란?

    메트릭은 쉽게 말해 "수치로 측정한 데이터"입니다. 예를 들어, 웹 서버에서는 요청 시간이 메트릭이 될 수 있고, 데이터베이스에서는 활성 연결 수가 메트릭이 될 수 있습니다. 이러한 메트릭을 통해 시스템의 상태나 성능을 이해하고 문제를 해결할 수 있습니다.

     

     

    구성 요소

    • Prometheus 서버

    데이터를 주기적으로 수집하고 저장하는 역할을 합니다.

    • 클라이언트 라이브러리

    애플리케이션 코드에 메트릭을 추가할 수 있는 라이브러리입니다.

    • push gateway

    짧은 시간 동안 실행되는 작업을 지원합니다.

    • 특수 목적의 exporter

    HAProxy, StatsD, Graphite 등의 서비스에서 메트릭을 수집하는 도구입니다.

    • Altertmanager

    알림을 관리하고, 알림이 발생했을 때 처리하는 역할을 합니다.

    • 지원 도구들

    Prometheus와 함께 사용할 수 있는 다양한 도구들이 있습니다.

     

     

     

     

    Grafana 란?

    Grafana는 오픈 소스 데이터 시각화 도구로, 메트릭, 로그, 트레이스 데이터를 실시간으로 쿼리하고 시각화하는 데 사용됩니다. Grafana는 다양한 데이터 소스를 지원하여, Prometheus, CloudWatch, Elasticsearch, Postgres, MySQL, Loki 등에서 데이터를 가져와 대시보드에서 시각화할 수 있습니다.

     

     

    주요 특징

    • 대시보드

    데이터를 시각화하는 다양한 그래프, 차트 및 다른 시각적 요소를 제공하는 대시보드를 생성할 수 있습니다.

    • 데이터 소스 플러그인

    다양한 데이터 소스를 연결할 수 있는 플러그인을 제공합니다. Prometheus, InfluxDB, MySQL, Graphite 등과 같은 여러 데이터 소스와 호환됩니다.

    • 쿼리 및 변환

    사용자는 데이터를 쿼리하고, 선택적으로 변환하여 더 의미 있는 방식으로 표시할 수 있습니다.

    • 알림 시스템

    경고 규칙을 설정하여, 데이터가 특정 조건을 만족할 때 자동으로 알림을 받을 수 있습니다.

    • 오픈 소스 및 확장성

    Grafana는 오픈 소스로 제공되며, 필요에 따라 플러그인 및 기능을 확장할 수 있습니다.

     

     

    Dashboard

    https://grafana.com/docs/grafana/latest/fundamentals/dashboards-overview/

    Grafana 대시보드는 데이터를 그래프, 차트 및 기타 시각화 요소로 표시하는 패널로 구성됩니다. 각 패널은 데이터 소스에서 원시 데이터를 시각화로 변환하는 컴포넌트를 사용하여 생성됩니다. 이 과정은 크게 세 가지 단계를 거칩니다.

    1. 플러그인
      데이터 소스와 상호작용하여 데이터를 가져오는 역할을 합니다.
    2. 쿼리
      플러그인을 통해 데이터를 요청하고 필요한 정보를 추출합니다.
    3. 변환 (선택)
      쿼리 결과에 추가적인 변환을 적용하여 데이터를 더 의미 있는 형태로 가공합니다.

    > 이 세 가지 단계를 통해 Grafana는 데이터를 효과적으로 시각화하여 대시보드에서 표시할 수 있게 됩니다.

     

     

     

     

    설치하기

    2025.03.23 - [Kubernetes] - Prometheus & Grafana - 2) 설치하기

    'Kubernetes' 카테고리의 다른 글

    ArgoCD를 이용한 GitOps 구성  (0) 2025.03.23
    Prometheus & Grafana - 2) 설치하기  (0) 2025.03.23
    CloudNativePG  (0) 2025.03.23
    ArgoCD 설치 (Helm)  (0) 2025.03.23
    MetalLB 설치하기  (0) 2025.03.22
Designed by Tistory.