mingming

Kubernetes Monitoring 시스템 ( Prometheus & Grafana ) 본문

kubernetes

Kubernetes Monitoring 시스템 ( Prometheus & Grafana )

mingming_96 2023. 9. 17. 21:11

Prometheus 

사운드 클라우드에서 자사의 서비스 모니터링을 위해 개발한 도구 입니다. 현재는 오픈 소스로 전환되어 CNCF에서 관리하고 있습니다. 

  시계열 데이터베이스를 내장하고 있고, 자체적인 질의 페이지외에 시각화 기능은 없지만 그라파나와 연계해 실무에서 사용할 수 있는 시각화 기능을 제공할 수 있습니다. 중앙 서버에서 에이전트의 데이터를 수집하는 방식을 사용해 쿠버네티스 환경에서 설치된 에이전트를 통해 노드와 컨테이너 상태를 모두 수집해 모니터링할 수 있습니다.  

  프로메테우스는 완전한 오픈 소스 모델을 선택해 사용자 층이 넓고 관련자료가 많으며 각종 대시보드 도구나 메신저 등이 프로메테우스와의 연계를 지원해  모니터링 시스템을 구축하기 용이합니다.

 

Grafana

그라파나 랩스에서 개발했으며, 특정 소프트웨어에 종속되지 않은 독립적인 시각화 도구 입니다. 30가지 이상의 다양한 수집 도구 및 데이터베이스들과 연계를 지원합니다. 주로 시계열 데이터 시각화에 많이 사용하지만 관계형 데이터베이스 데이터를 표 형태로 시각화해 사용할 수 있습니다. 또한 풍부한 플러그인을 지원해 새로운 데이터 소스 및 시각화 옵션을 추가하고 확장하기 용이합니다. 

 

Monitoring Pipeline

 

Prometheus는 여러 종류의 오브젝트를 설치하며, 오브젝트를 통해 설치된 요소들로 모니터링에 필요한 데이터를 수집하고 저장 합니다.

 

Prometheus Server

프로메테우스의 주요 기능을 수행하는 요소로, 크게 세가지 역할을 담당하게 됩니다.

  1. 각 노드에서 메트릭을 수집해오는 수집기 

  2. 수집한 시계열 메트릭 데이터를 저장하는 시계열 데이터베이스

  3. 저장된 데이터를 질의하거나 수집 대상의 상태를 확인할 수 있는 웹 UI

 

node-exporter

노드 시스템의 메트릭 정보를 HTTP로 공개하는 역할을 합니다. 설치된 노드에서 특정 파일들을 읽고, 이를  프로메테우스 서버가 수집할 수 있는 메트릭 데이터로 변환후에 노드 익스포터에서 HTTP 서버로 공개합니다. 공개한 내용을 프로메테우스 서버에서 수집해 가게 됩니다.

 

kube-state-methrics

API 서버로 쿠버네티스 클러스터의 여러 메트릭 데이터를 수집한 후, 이를 프로메테우스 서버가 수집할 수 있는 메트릭 데이터로 변환해 공개하는 역항를 합니다. 

 

alert-manager

프로메테우스에 경보 규칙을 섲렁하고, 경보 이벤트가 발생하면 설정된 경보 메세지를 대상에게 전달하는 기능ㅇ르 제공합니다. 프로메테우스에 설치하면 프로메테우스 서버에서 주기적으로 경보를 보낼 대상을 감시해 시스템을 안정적으로 운영할 수 있게 합니다. 

 

push-gateway

배치와 스케줄 작업 시 수행되는 일회성 작업들의 상태를 저장하고 모아서 프로메테우스가 주기적으로 가져갈 수 있도록 공개합니다. 일반적으로 짧은 시간 동안 실행되고 종료되는 배치성 프로그램의 메트릭을 저장하고나 외부망에서 접근할 수 없는 내부시스템의 메트릭을 프록시 형태로 제공하 용도로 사용합니다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

'kubernetes' 카테고리의 다른 글

promehteus 메트릭 수집  (0) 2023.09.18
Prometheus on kubernetes  (1) 2023.09.18
kubernetes controller - CronJob  (1) 2023.09.05
kubernetes controller - Job  (1) 2023.09.05
kubernetes controller - StatefulSet  (0) 2023.09.04