Apache Thanos

김도비·2024년 10월 9일
0

Monitoring

목록 보기
5/5

회사 솔루션에서 각종 지표 및 헬스체크 용도로 프로메테우스를 사용하고 있는데, 단일 구성으로 되어 있어 문제점들이 존재하긴 했다.

Apahce Prometheus 한계점

1). SPOF 및 Sacale out X

  • 기존 환경에서는 하나의 프로메테우스로만 설치되어 메트릭을 수집하고 있었기에 중단이 있거나, 서버 다운으로 인한 메트릭 누락에 대한 문제점이 발생했다.

2). 데이터 장기보관 문제

  • 프로메테우스는 주로 단기간(실시간) 모니터링 하기 위해 최적화가 되어있기 때문에 장기적으로 데이터를 보관하여 파악이 필요한 솔루션에 대해서는 문제가 발생. 또한 데이터 장기보관 시 해당 서버에 리소스를 과다하게 사용한다는 문제점도 발생.

이러한 문제점들을 해결하기 위해 Apahce Thanos를 도입하기로 했다(주관적인 생각).

Apache Thanos Architecture

Thanos Sidecar

Thanos Sidecar는 각 Prometheus 인스턴스 있는곳에 같이 배포하며,
Prometheus와 통합되어 메트릭 데이터를 외부 객체 저장소로 업로드한다.
또한 Prometheus 데이터를 Thanos의 다른 컴포넌트가 접근할 수 있도록 gRPC API를 제공.

Thanos Store

Thanos Store Gateway는 객체 저장소(S3, GCS 등)에 저장된 과거 메트릭 데이터를 조회할 수 있도록 해준다. 이 컴포넌트는 장기 저장된 데이터에 대한 쿼리를 처리하며, Thanos Query와 통합되어 Prometheus 데이터와 통합된 뷰를 제공.

Thanos Querier

Thanos Querier는 Thanos의 핵심 컴포넌트로, 글로벌 쿼리 인터페이스를 제공한다.
여러 Prometheus 인스턴스와 오브젝트 스토리지에 저장된 데이터를 하나의 인터페이스에서 통합 조회할 수 있도록 지원.

Thanos Compactor

Thanos Compactor는 데이터의 압축과 다운샘플링을 담당하는 컴포넌트.
데이터의 크기를 줄여 저장소 사용량을 줄이고, 오래된 데이터를 다운샘플링하여 쿼리 성능을 최적화.

Apache Thanos 장점

장기적인 데이터 저장

Thanos는 Amazon S3, Google Cloud Storage 등과 같은 오브젝트 스토리지에 데이터를 무기한 저장할 수 있음. Prometheus의 기본 저장소가 시간 제한이 있는 반면, Thanos는 데이터를 더 오래 보관할 수 있어 장기 분석이 가능.

글로벌 조회 기능

Thanos는 여러 Prometheus 인스턴스의 데이터를 한 번에 조회할 수 있는 글로벌 쿼리 뷰를 제공.

고가용성(H/A)

Thanos는 여러 Prometheus 인스턴스를 병렬로 실행하여 고가용성(HA)를 제공.
만약 하나의 인스턴스가 다운되더라도 다른 인스턴스가 계속 데이터를 제공하여 데이터 손실 없이 모니터링을 이어갈 수 있음.

확장성

Thanos는 오브젝트 스토리지를 사용하여 데이터를 저장함으로써, 메트릭스 데이터를 무제한으로 저장 가능.

다운샘플링

Thanos는 오래된 데이터를 다운샘플링하여 과거 데이터를 효율적으로 조회할 수 있게 함.
이를 통해 쿼리 속도를 개선하고, 저장소의 부담을 줄일 수 있다.

profile
모든 걸 기록하자

0개의 댓글