YUMSERV
article thumbnail
Published 2023. 7. 3. 11:15
[Thanos] Thanos 정의 MONITORING
반응형

1. Prometheus HA 문제

기존 프로메테우스 환경은 단일 노드에서 로컬 저장소를 사용하는 단순한 구조로 이루어져있습니다.

prometheus 는 서버를 주체적으로 데이터를 수집해오는 server-side pool 방식을 사용하므로 prometheus 가 정지되어있는 동안에는 데이터 누락이 발생하게됩니다.

또한 프로메테우스 자체에서 HA구성을 지원하지 않기 때문에, 모니터링서비스가 많아질 수록, scale out을 할 수 없는 문제점이 있습니다.

 

2. Thanos 란

2-1) Thanos 정의

- Thanos 란 prometheus 기반 오픈소스프로젝트

- 모니터링 시스템 확장 도구

- 프로메테우스에서 scale out 이 가능한 도구

- HashMode 사용

Hashmode 란?
Target의 label value를 연산한 값과 설정한 값이 일치하는 경우에만 수집. hashing한 값으로 판단하므로 항상 고르게 분포되지는 않지만 분산효과가 좋습니다.

Hashmode 설명

여러개의 프로메테우스 노드들에서 메트릭 정보를 받아와서, 전체 정보들을 제공해줍니다.

수집된 메트릭을 스케일이 가능한 스토리지에 저장해서 특정 프로메테우스 노드들이 다운되더라고 그 인스턴스를 담당하는 메트릭을 조회할수 있도록 해줍니다.

 

https://thanos.io/

 

Thanos

Thanos - Highly available Prometheus setup with long term storage capabilities

thanos.io

 

 

2-2) Thanos 구조

Thanos 구조

Thasnos Sidecar

- Prometheus 서버와 같이 실행되는 컴포넌트로, prometheus 에서 수집한 데이터를 수신하고 업로드 합니다.

 

Thanos Store

- 로그 데이터를 저장합니다.

- Store Gateway : object storage 버킷 내부에 메트릭을 제공합니다.

 

Thanos query

- 다수의 Prometheus 수집된 로그를 한번에 조회(집계)할 수 있습니다.

- Query Frontend : cache(로컬 메모리, redis등을 이용하여 query 결과 캐싱), split(긴 기간 조회할 때 쿼리를 여러개로 쪼개서 병렬 수행한 결과를 합쳐 응답) 역할

 

Thanos Compactor

- Prometheus 쿼리 효율성을 향상시키기 위해 주기적으로 버킷에 저장된 데이터를 압축

 

Thanos Receiver

- 원격에 있는 로그데이터를 수신하여, Object storage에 업로드

 

Thanos Ruler

- Prometheus 기록 및 경고 규칙 평가

 

2-3) Thanos 기능

- 전역 쿼리 확인 : 사용자 인터페이스(한곳)에서 모든 데이터에 대한 쿼리 확인이 가능

- 고가용성 : prometheus 배포를 위한 ha 지원

- 데이터 스토리지 : prometheus 데이터를 오브젝트 스토리지에 데이터 저장

 

3. 기타(참고)

Thanos + prometheus kubernetes 환경 배포

https://www.metricfire.com/blog/ha-kubernetes-monitoring-using-prometheus-and-thanos/

 

HA Kubernetes Monitoring using Prometheus and Thanos | MetricFire Blog

Learn how to deploy a clustered Prometheus setup that integrates Thanos. Also, we'll visualize and monitor our data in Grafana dashboards.

www.metricfire.com

 

토스 - prometheus - thanos 사례

https://toss.im/slash-21/sessions/1-2 

 

토스의 서버 인프라 모니터링

서버 인프라를 효과적으로 트러블 슈팅할 수 있도록 노력한 경험과 모니터링 인프라를 운영한 경험을 공유합니다.

toss.im

 

prometheus thanos 관련 소개 영상

https://www.youtube.com/watch?v=Fb_lYX01IX4

 

반응형

'MONITORING' 카테고리의 다른 글

[Grafana] Grafana 란  (0) 2023.06.28
[Redash] Redash 설치 - Docker  (0) 2023.05.23
[Prometheus] 프로메테우스란  (0) 2023.02.14
[Uptime Kuma] 알림 설정  (0) 2022.08.22
[Uptime Kuma] 설치 및 사용  (0) 2022.08.19
profile

YUMSERV

@lena04301

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!