Kubernetes 이야기

Prometheus agent mode 본문

Kubernetes/모니터링

Prometheus agent mode

kmaster 2022. 9. 3. 12:12
반응형

 

Prometheus 는 Kubernetes 환경에서 모니터링을 위한 사실상 표준 솔루션이다. 

Prometheus의 아키텍처는 다음과 같다.

 

https://prometheus.io/docs/introduction/overview/

Prometheus는 기본적으로 Pull 방식의 모니터링 솔루션이다. 즉 모니터링 대상 App에서 Prometheus로 모니터링 수집 데이터를  Push 하는 것이 아닌 Prometheus에서 App에게 모니터링 수집 데이터를 요청하여 저장하는 방식이다.

 

https://prometheus.io/blog/

 

이 Push 모드와 Pull 모드의 장단점이 있기 때문에 어느쪽이 더 아키텍처인지는 판단할 수 없다.

 

Prometheus의 주요 기능은 다음과 같다.

 

  • 메트릭 이름 및 키/값 쌍으로 식별되는 시계열 데이터가 있는 다차원 데이터 모델
  • 이 차원을 활용 하는 유연한 쿼리 언어 인 PromQL
  • 분산 스토리지에 의존하지 않음 단일 서버 노드는 자율적
  • 시계열 수집은 HTTP를 통한 풀 모델을 통해 발생
  • 푸시 시계열 은 중개 게이트웨이를 통해 지원
  • 대상은 서비스 검색 또는 정적 구성을 통해 검색
  • 여러 모드의 그래프 및 대시보드 지원

Prometheus를 사용함으로써 얻는 효과는 다음과 같다.

 

  • Prometheus는 메트릭 수집을 활성화하기 위해 서버 또는 컨테이너 이미지에 별도 Agent를 설치할 필요가 없다.
  • Prometheus는 대상 응용 프로그램이 다운되면 Prometheus는 데이터를 검색할 수 없다고 기록할 수 있다.
  • 메트릭을 가져올 수 없는 상황이 있는 경우 Prometheus는 필요한 경우 애플리케이션이 메트릭 데이터를 계속 푸시 할 수 있도록 하는 Pushgateway 를 제공합니다.

Prometheus HA

 

기본적으로 Prometheus에는 2개 이상의 Prometheus Instance를 실행하여 고가용성을 구성한다. Prometheus의 각 인스턴스는 서로 독립적으로 실행되지만 각각은 여전히 ​​Prometheus Operator가 설정한 것과 동일한 구성을 갖는다. 기본적으로 아래와 같이 두 개의 대상 메트릭 복사본이 스크랩된다.

 

https://observability.thomasriley.co.uk/prometheus/using-thanos/high-availability/

이와 다르게 하나의 Cluster가 아닌 멀티 클러스터에서 다양한 Prometheus 수집 데이터를 쿼리하려면 또 다른 개념이 필요하다.

 

Prometheus Clustering

 

Prometheus는 여러 Prometheus 인스턴스의 데이터를 집계하고 사용자에게 통합된 글로벌 뷰를 제공하는 세 가지 방법을 주로 사용한다.

 

 

https://prometheus.io/blog/

 

  • Federation : Prometheus에서 가장 먼저 내장된 데이터 집계 솔루션이다. 중앙 Prometheus 인스턴스를 사용하여 리프 Prometheus 인스턴스에서 메트릭을 캡처할 수 있다. (https://prometheus.io/docs/prometheus/latest/federation/)
  • Remote read : 직접 PromQL 쿼리 없이 원격 Prometheus 서버의 데이터베이스에서 원시 메트릭을 선택할 수 있다.데이터를 읽은 후 집계하여 사용자에게 표시할 수 있다. 이 구현의 가장 많이 사용되고 있는 솔루션이 Thanos 이다. (https://github.com/thanos-io/thanos) 데이터에 대한 PromQL 쿼리를 수행하는 글로벌 보기 서비스로 작동하는 동시에 원격 위치에서 필요한 메트릭을 가져온다.
  • Remote write : Prometheus를 메트릭에 수집하고 원격 스토리지에 쓰는 것을 지원할 수 있다. 사용자가 사 용할 때 원격 저장소에서 데이터를 직접 읽고 전역 보기 등을 제공한다.

Prometheus에서는 Agent Mode 를 v2.23.0 부터 제공한다. Remote write를 사용하여 원격 저장소에 Agent 모드가 활성화된 Prometheus 인스턴스의 데이터를 기록한다.

https://prometheus.io/blog/

Agent Mode는 다음과 같이 몇가지 장점을 갖는다.

 

  • 에이전트 모드는 Prometheus의 기본 제공 기능이다.
  • 에이전트 모드가 활성화된 Prometheus 인스턴스는 리소스를 덜 소비하고 단일 기능을 가지므로 일부 Edge 환경의 확장에 더 유리하다.
  • 에이전트 모드가 활성화되면 Prometheus 인스턴스는 거의 상태 비저장 응용 프로그램으로 간주될 수 있으므로 확장에 더 편리하다.

 

참조

https://prometheus.io/blog/

 

 

반응형
Comments