skip to Main Content

Prometheus 및 Thanos로 대규모 클라우드 환경 모니터링

Kubernetes 클러스터 모니터링 솔루션은 확장 인프라 요구 사항을 충족하기 위해 지속적으로 발전하고 있습니다. 예전 아키텍쳐는 중소 규모의 인프라 크기에 적합했지만 필요한 방식으로 확장 할 수 없었습니다. 

이번 글에서는 Thanos와 Prometheus를 사용하여 모니터링 인프라를 확장하고 Long-Term 스토리지 요구 사항을 충족하는 방법을 설명합니다.

Prometheus federation의 한계

Prometheus 는 시계열 이벤트를 기록하고 이벤트에 대한 데이터를 쉽게 쿼리 할 수 ​​있도록 설계된 오픈 소스 시스템 모니터링 및 알림 도구입니다. Prometheus는 안정성을 위해 설계되었으며 Federation을 사용하여 다중 클러스터 환경에서 메트릭을 가져올 수 있습니다.

Prometheus Federation을 사용하여 여러 클라이언트 Prometheus 서버에서 데이터를 가져오고 실시간으로 경고를 처리 할 수 ​​있었지만 각 로컬 볼륨에 저장되며 이 방식에는 단점(대용량 전용 볼륨으로 비용부담, 오래된 메트릭 데이터 검색 불가, 볼륨 장애시 데이터 복구 어려움, Prometheus 데이터 증가로 인한 중앙 Prometheus의 부하 발생)이 존재합니다.

Thanos

Thanos는 Prometheus 고가용성 및 Long-Term 스토리지 기능을 제공합니다. 또한 Thanos를 사용하면 여러 Prometheus 대상의 데이터를 집계하고 단일 쿼리 엔드 포인트에서 쿼리 할 수 ​​있습니다. Prometheus 에서 발생할 수 있는 메트릭 중복을 자동으로 처리 할 수 ​​있습니다.

Prometheus와 Thanos 구성

클러스터에 구성 요소를 배포하기 위해 Prometheus operator , Thanos 대한 Helm 차트를 사용합니다. 

Thanos의 주요 구성 요소

  • Thanos Sidecar : Prometheus와 함께 배포되고 2시간마다 개체 스토리지에 메트릭을 업로드하는 구성 요소입니다. 
  • Thanos Query : PromQL을 사용하여 메트릭을 쿼리합니다. 단일 Thanos 쿼리 엔드 포인트에서 여러 메트릭 백엔드를 집계하고 중복 제거하는 기능을 제공합니다.
  • Thanos Gateway : 오브젝트 스토리지에 있는 과거 데이터 위에 스토어 API를 구현합니다. Thanos 클러스터와 오브젝트 스토리지 간의 API 게이트웨이 역할을 합니다. 
  • Thanos Compactor : 오브젝트 스토리지에서 Prometheus 압축 방법에 따라 데이터 블록을 생성하고 블록을 생성하여 데이터 다운 샘플링을 처리 할 수 ​​있습니다. 
  • Thanos Ruler : Thanos 쿼리 구성 요소에 연결하고 Prometheus Alert 및 Record 규칙을 평가합니다. Prometheus Alert Manager를 사용하여 Alert를 트리거 할 수 있습니다. 

Prometheus, Thanos, Grafana, EFK 및 기타 많은 오픈 소스 구성 요소를 기반으로 멀티 클러스터 모니터링 시스템 구축이 가능하지만  아코디언을 통하면 빠르게 모니터링 시스템 구성이 가능하고 발생할 수 있는 배포간 문제해결을 지원해드리고 있습니다.

🔗 Related Links

https://thanos.io/

Back To Top