인포그랩
home
회사 소개
home

Prometheus Stack 구축하기

소개

Kubernetes 모니터링은 쿠버네티스 클러스터와 그 안에서 실행되는 애플리케이션의 상태, 성능, 리소스 활용도에 대한 데이터를 수집, 분석 및 시각화하는 프로세스를 말합니다. 이를 통해 DevOps, SRE 및 클러스터 관리자가 Kubernetes 클러스터 환경에서 리소스 부족, 높은 CPU 또는 메모리 사용량, 노드 또는 컨테이너의 장애 등과 같은 문제를 식별하고 해결하는 데 도움이 됩니다.
Kubernetes 모니터링은 클러스터의 상태, 안정성 및 성능을 보장하여 동적 환경에서 안정적이고 효율적인 컨테이너화된 애플리케이션을 실행할 수 있도록 하는 측면에서 중요합니다. 문제가 발생하면 원인을 정확히 파악하기 어려울 수 있습니다. Kubernetes 모니터링을 적절하게 수행하면, 문제가 발생하고 있는 또는 발생할 가능성이 있는 위치를 확인하고 조치할 수 있습니다.
Kubernetes 모니터링에는 메트릭 수집, 알림 설정, 데이터 시각화 및 대시보드, 리소스 사용률 분석, 애플리케이션 모니터링 등이 포함됩니다. 이러한 측면을 모두 다루는 인기 있는 모니터링 도구 조합은 Prometheus, Grafana, Alertmanager입니다.
Prometheus Stack은 Kubernetes 클러스터에서 Prometheus 및 관련 구성 요소의 배포, 관리 및 모니터링을 용이하게 하도록 설계된 도구 및 구성 모음입니다.
학습의 결과로 Prometheus, Grafana, Alertmanager 및 관련 리소스를 Kubernetes 클러스터에 배포합니다. 이후 이를 이용하여 메트릭을 수집하고, 대시보드를 생성하고, 알림을 설정하여 Kubernetes 클러스터를 모니터링 할 수 있습니다. 더 나아가서 Observability 구축에도 활용할 수 있습니다.

Prometheus란?

Prometheus는 메트릭 데이터를 수집하고, 시계열 데이터베이스(DB)에 저장하는 시스템 모니터링 도구입니다. 이는 시계열 데이터를 쿼리하기 위한 PromQL을 사용하며 알림도 제공하고 있습니다.
Prometheus의 주요 특징은 다음과 같습니다.
시계열 데이터로 메트릭 이름과 key/value로 저장되는 다차원 데이터 모델
PromQL을 활용한 강력한 쿼리 및 알림 기능
Pull 방식을 이용한 메트릭 수집
중간 게이트웨이를 활용한 Push 방식 지원
뛰어난 데이터 시각화 및 대시보드 지원
다양한 플랫폼 연동 지원
분산 스토리지에 의존하지 않고 단일 서버 노드로 운영 가능

Grafana란?

Grafana는 시계열 데이터, 로그 데이터, DB 데이터를 시각화하고 대시보드를 구성할 수 있는 도구입니다. 데이터를 직접 저장하는 것이 아니기 때문에, 저장 위치에 상관없이 쿼리, 탐색, 시각화가 가능합니다. 특히 Prometheus와 같은 시계열 DB 시각화하는 데 많은 장점이 있습니다.
Grafana의 주요 특징은 다음과 같습니다.
다양한 데이터 소스 추가 및 쿼리 지원
다양한 대시보드 패널 및 플러그인 지원
템플릿 및 변수를 활용한 동적 대시보드 지원
대시보드 공유 및 Import 기능

학습 내용

Prometheus Stack Helm 차트 리포지터리를 구성하는 방법
Prometheus Stack Helm 차트의 구성 정보를 배포 환경에 맞게 설정하는 방법
Helm 차트로 Prometheus Stack을 배포하고 확인하는 방법

아키텍처

사전 준비사항

기본 요건

Kubernetes에 대한 기본 개념
Helm, kubectl에 대한 기본 개념
Kubernetes 모니터링에 대한 기본 개념

필요 항목

Prometheus Stack를 배포할 Kubernetes 클러스터가 구축되어 있어야 합니다.
TLS/SSL 인증서를 사용할 수 있도록 cert-manager가 구축되어 있어야 합니다.
Ingress 리소스를 사용할 수 있도록 NGINX Ingress Controller가 구축되어 있어야 합니다.