관리 메뉴

개발노트

Prometheus 에서 kubernetes(k8s) 자원 모니터링 방법 본문

기타/Prometheus

Prometheus 에서 kubernetes(k8s) 자원 모니터링 방법

YoonGwon 2021. 1. 13. 18:11

Prometheus 란 무엇인가?

 

- Prometheus 는 현재 Kubernetes 상에서 가장 많이 사용하는 오픈 소스 기반 모니터링 시스템이다.

- CNCF 에 소속되어 있으며, Kubernetes 클러스터 및 Docker 컨테이너들를 손쉽게 모니터링 가능하다.

- 간단한 텍스트 형식으로 메트릭을 쉽게 노출 가능하며, 데이터 모델은 key-value 형태로 레이블을 집계한 후 , Grafana같은 대시 보드 시스템에서 그래프로 쉽고 간단하게 Dashboard 를 만들 수 있다.

- 또한 이해하기 쉬운 PromQL 쿼리 언어를 사용하여 간단하게 경고와 Ruleset을 정의 가능하다.


 

프로메테우스 사용예시

- 위 내용은 예를들어 위와같은 클라우드 환경의 인프라 서비스가 동작중일때 한곳에서 발생한 에러가 종속된 다른 서비스에도 영향을 주게되어 최종적으로 유저(Client)가 로그인을 시도했을때 발생하는 에러상황을 보면, 우리는 별다른 모니터링 시스템이 구축되어있지않는 이상 원칙적으로 단계별 디버깅을 시작한다. 벡엔드서버가 잘 살아있는지 or DB서버가 살아있거나 존재하지않는 값인지 or 인증키가 사라졌는지 등을 확인해야할 필요성이있다.


- 하지만 위와같은 방법은 로깅과 에러처리를 잘해두었더라도 정확한 에러지점을 파악하기어렵고 한눈에 서비스들이 정상적으로 동작중인지 조차 확인하기 어렵다. 그리하여 나온 솔루션이 바로 Prometheus라는 모니터링 솔루션이 나온것이며 Prometheus는 위 클라우드 환경의 각 노드에 Exporter라는 메트릭 수집 agent를 통하여 주기적으로 Prometheus Serverd에서 해당 EndPoint에 접근해 Pull 하여 상태값이나 메트릭정보들을 자체적으로 관리해준다.


- 아래의 그림은 순서대로 Prometheus Server, Prometheus Exporter의 구성을 그린것이니 참고하자.

프로메테우스 서버의 구성도
프로메테우스 agent인 Exporter의 동작과 프로메테우스 Server에서 Pull하는 구성도

다음장은 실제 개발 k8s환경에 Prometheus설치 및 메트릭 수집환경을 구성하는 방법에 대해 포스팅 한다.

 

#참조: youtube.com/watch?v=h4Sl21AKiDg

728x90