본문 바로가기
카테고리 없음

Grafana 와 Prometheus

by BTC_루피 2023. 8. 18.

베하~!

문땅훈과 루피입니다.

 

 

 

즐거운 금요일이네요!!

다들 알찬 한 주 보내셨나요~!?

 

오늘은 그라파나와 프로메테우스에 대해 알아보겠습니다.

 


 

개요

  • Grafana
  • Prometheus

 

1. Grafana

  • Grafana란?
    • 계열 매트릭 데이터를 시각화 하여 가장 최적화된 대시보드를 제공해주는 오픈소스 분석 플랫폼
    • 대시보드를 통해 인터렉티브한 시각화 기능을 제공, Prometheus, InfluxDB, Elasticsearch등 다양한 데이터 소스와 연동 가능
    • Grafana는 시계열 메트릭 데이터 수집에 최적화 되있으며, 보통 서버 리소스의 메트릭 정보나 로그 같은 데이터를 시각화할때 많이 사용

 

  • Grafana 특징
    •  오픈소스이다.
    • 그래프에서 특성 수치가 넘어가면 알람을 보낼 수 있는 기능을 제공
    • 외부 데이터 소스를 정의하고 해당 데이터 소스에 쿼리를 통해서 데이터를 동적으로 가져옴
    • 플로그 인, 어플리케이션 플러그 인, 패널 플러그 인 등 다양한 플러그 인을 지원
    • 대시보드를 구성하는데 있어서 많은 패널을 제공하여 유연한 대시보드 구성 가능

 

 

Download Grafana | Grafana Labs

Overview of how to download and install different versions of Grafana on different operating systems.

grafana.com

 

  • 설치 명령어 (Ubuntu and Debian)
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_10.0.3_amd64.deb
sudo dpkg -i grafana-enterprise_10.0.3_amd64.deb

 

  • Grafana 접속
    • 그라파나는 3000번 포트를 사용하므로, http://localhost:3000 으로 접속하면 됩니다.
    • 또한, Grafana의 초기 username와 password는 admin, admin 입니다.

 

 

Grafana

If you're seeing this Grafana has failed to load its application files 1. This could be caused by your reverse proxy settings. 2. If you host grafana under subpath make sure your grafana.ini root_url setting includes subpath. If not using a reverse proxy m

play.grafana.org

 

 

 

위 명령어를 통해 설치가 다 되었으면, Data Source를 추가해야합니다.

 

참고로, 그라파나는 아래 그림과 같은 플러그인을 제공합니다. Data source를 플러그인을 통해서 추가할 수 있습니다.

 

 

Data Source란, Grafana가 매트릭 정보를 수집하기 위해서 어떤 DB를 바라봐야 하는지 설정하는 것 입니다.

 

Grafana에서는 위 그림과 같이 여러 Data databases를 지원하는데 그 중 Prometheus에 대해 알아보겠습니다.

 

 


2. Prometheus

  • Prometheus란?
    • Prometheus는 메트릭 수집, 시각화, 알림, 서비스 디스커버리 기능을 모두 제공하는 오픈 소스 모니터링 시스템
    • 모니터링 대상이 되는 메트릭을 Pull 방식으로 수집

 

  • Metric 수집 방식
    • Prometheus에서는 메트릭을 Pull 방식으로 수집합니다.  
      • Pull : 데이터를 가진 곳에서 필요한 곳으로 보내 주는 방식
        • Nagioz, Zabbiz 가 있으며, 메트릭은 중앙에서 정의되고 할당된 에이전트에 푸시됨
        • 수집된 데이터는 에이전트가 중앙 서버로 보냄
      • Push : 데이터가 필요한 곳에서 가진 곳에 접속하여 데이터를 가져가는 방식
        • Promethues, Datadog, Collectd가 있으며, 에이전트 자체에 메트릭 정보가 포함되어 있음
        • 에이전트는 메트릭을 수집하며, 중앙 시스템으로 데이터 전송을 위한 정보가 보통 에이전트에 포함되어 있음
        • 수집된 데이터는 중앙서버가 에이전트에서 가져감

 

  • Promethues 특징
    • 고차원 데이터 모델을 구현, 시계열은 메트릭 이름과 key-value 쌍으로 식별됨
    • PromQL을 통한 강력한 쿼리
    • 뛰어난 데이터 시각화 제공
    • custom format을 통해 효율적인 데이터 저장
    • 각 서버는 안정성을 위해 독립적이며 로컬 저장소에만 의존
    • pull 방식의 데이터 수집(push 방식도 가능)

 


GKE에서 Prometheus와 Grafana 예시

출처 : https://github.com/srinisbook/Prometheus-grafana

 

  • 프로메테우스에서 GKE의 메트릭을 Pull 방식으로 가져와 Grafana의 대시보드로 시각화하여 제공하게 됩니다.

 


지금까지 간단한 예시와 함께 Grafana와 Promethues를 알아보았습니다.

도움이 많이 되셨나요!?

 

 

다음주도 알찬 정보와 함께 돌아오겠습니다.

그럼 베빠 ~!

 

댓글