[Cloud]/Prometheus

Prometheus & Grafana on OpenShift

ByoungHee Lee 2021. 9. 4. 10:49

개념

프로메테우스는 SoundCloud에서 개발한 시스템 모니터링 및 알람을 제공하는 오픈소스 모니터링 플랫폼이다. 프로메테우스는 타임시리즈 계열의 메트릭 정보를 수집하고 저장하여 쿼리를 통해 시계열 데이터를 표현할 수 있는 플랫폼, 알람, 그리고 다양한 3rd party 솔루션에서 연동하여 시각화할 수 있는 다양한 plugin을 제공한다. 이러한 편리한 기능들로 인해 다양한 기업 및 기관에서 인프라스트럭처 및 컨테이너 플랫폼의 모니터링 시스템으로 많이 활용하고 있다. 

특징

프로메테우스는 타임시리즈 데이터를 메트릭 이름과 key/value 쌍으로 식별할수 있는 다차원 데이터 모델을 제공한다. TSDB를 사용하고 데이터를 활용하기 위해서 유연한 Query Language를 사용한다. 기본적으로, 싱글 서버로 구성이 되고 고가용성을 보장하지는 않지만, 오픈시프트와 같은 엔터프라이즈 컨테이너 플랫폼을 통해 서버에 대한 고가용성 및 스토리지에 대한 영구/비영구 적으로 데이터 보존이 가능하다. 데이터를 수집하는 방식은 클라이언트에서 Pushgateway에 메트릭을 전달(Push)하고 프로메테우스 서버는 Pushgateway로 부터 메트릭을 가져가는(Pull) 방식이다. 

프로메테우스 아키텍처

다이어그램은 프로메테우스 아키텍처와 여러 에코시스템 컴포넌트들을 보여준다. 

[그림 1] Prometheus Architecture Diagram (출처 : https://prometheus.io)

1) Pushgateway

Pushgateway는 메트릭정보를 수집/전달하는 매개체 역할을 한다. 주로, 클라언트 측에서는 모니터링 대상이 되는 메트릭정보를 Pushgateway에 전달(Push)하고 Prometheus 서버측에서는 Pushgateway로 전달된 메트릭을 수집(Pull)하여 시계열 데이터 정보를 DB에 저장하는 중간 매개체 역할을 한다.

2) Prometheus server

프로메테우스 서버는 타겟 서버로부터 메트릭 정보를 다이렉트로 수집하거나 Pushgateway로 부터 메트릭정보를 수집하고 저장하는 서버 역할을 한다. 서버에 수집된 정보는 Alertmanager에 알람정보를 전달(push) 하는 역할을 할수도 있고, 다양한 데이터 시각화를 제공할 수 있도록 PrmQL 쿼리를 제공한다. 

3) Alertmanager

Alertmanager는 프로메테우스 서버에서 push되는 알람정보를 다양한 3rd party 솔루션으로 통보(notify)하는 역할을 한다. 

4) Prometheus UI

프로메테우스 UI에서는 메트릭을 다양한 쿼리를 통해 그래프로 시각화 해주는 기능외에도 alerts에 대한 기능을 관리할 수 있는 GUI를 제공한다.  

[그림 2] Prometheus UI (OpenStack Infrastructure 연동)

 

5) Grafana

그라파나(Grafana)는 Prometeus 서버에 수집된 다양한 시계열 메트릭 정보를 이용하여 시스템 인프라 자원 및 리소스에 대한 지표를 표시하고 alerts와 같은 기능을 제공하는 오픈소스 모니터링 시각화 툴이다.   

[그림 3] Grafana UI (OpenStack Infrastructure View)

[그림 4] Grafana UI (OpenStack VM View)

Red Hat은 OpenShift Container Platform을 통해 Prometheus를 활용한 다중 클라우드 클러스터를 모니터링할 수 있는 유연하고 안정적인 Service Telemetry Framework를 제공한다. 아래의 아키텍처는 OpenStack Platform Infrastructure의 메트릭 또는 이벤트 정보를 OpenShift Container Platform의 STF를 통해 어떻게 모니터링되는지에 대한 흐름을 보여준다.    

[그림 5] Red Hat Service Telemetry Framework Architecture Overview

'[Cloud] > Prometheus' 카테고리의 다른 글

Prometheus Dashboard 활용  (0) 2021.09.15