Monitoring

Prometheus, Grafana를 이용한 모니터링

gam2zer01 2024. 8. 21. 19:19

 

안녕하세요.

오늘은 모니터링 스택에서 중요한 역할을 하는 Prometheus와 Grafana에 대해 소개해드리겠습니다.

 

Prometheus는 시스템의 메트릭을 수집하고 저장하는 데 사용되며,

Grafana는 이 데이터를 시각화하여 모니터링할 수 있도록 도와줍니다.

 

이 글에서는 Prometheus와 Grafana의 주요 기능을 살펴보고, 제가 구성한 Grafana 대시보드를 분석해보겠습니다.

 

 

 

 

 

 

다음은 Kubernetes 환경에서의 Prometheus와 Grafana의 구성 요소들을 나타낸 그림입니다.

 

각 Worker Node에서 Node Exporter는 CPU, 메모리, 디스크 사용량 등 시스템 자원에 대한 메트릭을 수집합니다. Prometheus는 이 메트릭들을 주기적으로 스크랩하여 이를 기반으로 시스템의 상태를 모니터링합니다.

Grafana는 Prometheus로부터 수집된 메트릭 데이터를 가져와 시각화합니다. 

 

 

 

 

--다른 기술과의 비교

AWS에도 이와 같은 역할을 하는 서비스가 존재하는데요, 바로 CloudWatch라는 서비스입니다. CloudWatch는 AWS 환경에서 통합적인 모니터링과 관리 솔루션으로 널리 사용되고 있습니다.

 

하지만 CloudWatch를 사용하지 않고 Prometheus와 Grafana를 사용하는 이유는 다음과 같습니다:

 

Prometheus

  • 시계열 데이터를 효율적으로 수집하고 저장하는 데 특화되어 있어, 시스템 성능 모니터링에 매우 유용
    • 시계열 데이터(Time Series Data): 시간의 흐름에 따라 수집된 데이터
  • PromQL이라는 강력한 쿼리 언어를 제공하여 복잡한 메트릭 분석 가능=> 상세한 데이터 분석과 모니터링이 가능
  • 다양한 익스포터를 통해 여러 애플리케이션, 서비스, 하드웨어의 메트릭을 수집할 수 있어, 광범위한 모니터링이 가능
  • 오픈 소스 프로젝트 => 사용자 요구에 맞게 확장하고 커스터마이징 가능

 

Grafana

  • 다양한 그래프와 차트를 제공=> 복잡한 데이터를 직관적으로 시각화
  • 다양한 시스템의 데이터를 하나의 대시보드에서 통합 관리 가능
  • 맞춤형 모니터링 환경을 제공
  • 특정 조건이 발생할 때 이메일, Slack 등으로 알림을 보낼 수 있는 기능을 제공

 

 

 

 

 


이제부터는 Prometheus에서 수집한 데이터를 기반으로 구성한 Grafana 대시보드를 분석해보도록 하겠습니다.

 

 

 

 

이 대시보드는 Kubernetes 클러스터의 전체적인 자원 사용 현황을 시각화한 것입니다.

 

 

1. 네임스페이스별 전체 클러스터 CPU 사용량:

  • 현재 전체 클러스터의 CPU 사용량이 4.40%로 나타나고 있습니다. 이는 클러스터의 CPU 자원이 비교적 여유 있는 상태임을 보여줍니다.

2. 네임스페이스별 전체 클러스터 RAM 사용량:

  • 현재 전체 클러스터의 RAM 사용량은 21.56%로 나타납니다. CPU 사용량에 비해 RAM 사용률이 높지만, 여전히 전체 용량 대비 여유가 있는 상태입니다.

 

3. 리소스 개수:

  • 클러스터 내의 다양한 리소스 유형별 개수를 보여줍니다. 예를 들어, 실행 중인 Pods의 수가 273개로 표시되고 있으며, Configmaps, Services, Secrets 등과 같은 리소스도 각각의 개수가 나타나 있습니다. 이 정보는 클러스터에서 관리되고 있는 리소스의 규모를 파악하는 데 유용합니다.

 

 

 

 

4. 파드별 CPU 사용량:

  • 개별 파드의 CPU 사용량이 그래프로 나타나 있습니다. 특정 파드(예: alertmanager-kube-prometheus-stack 파드)가 다른 파드들에 비해 CPU 사용률이 높은 것으로 보입니다. 이 파드는 모니터링 스택의 중요한 역할을 하기 때문에 CPU 사용률이 높을 수 있습니다.

5. 파드별 메모리 사용량:

  • 개별 파드의 메모리 사용량도 그래프로 표시되어 있습니다. alertmanager-kube-prometheus-stack 파드의 메모리 사용량이 상대적으로 높으며, 다른 파드들은 비교적 적은 메모리를 사용하고 있습니다.

 

 

 

 

 

 

 

 

대시보드 출처: https://grafana.com/grafana/dashboards/