■ Thanos란?
Prometheus의 확장성, 가용성, Retention 문제 등 부족한 부분을 보완하여 기능을 제공하기 위해 Thanos가 탄생
■ Thanos 특징
▶ Thanos에서 말하는 특징은 총 4가지로 다음과 같음
1. Global Query View
· Prometheus Server 및 Cluster에서 Prometheus Metric Query를 화성화해서 Prometheus 설정을 확장
2. Unlimited Retention
· 원하는 Scale이 가능한 Object Storage System을 통해 Metirc을 무제한으로 저장 가능
- GCP, S3, Azure, Swift 및 Tencent COS를 지원
3. Prometheus Compatible
· Prometheus와 거의 완벽하게 호환되는 API 제공
4. DownSampling & Compaction
· Object Storage에 저장되어 있는 Data를 DownSampling하여 집계된 Data Query의 성능을 높이고, Data 압축/삭제를 통해 저장공간을 관리
■ Thanos Component 기능
1. Sidecar
· Prometheus Server와 함께 하나로 Deploying
2. Store (StoreAPI)
· Storage를 사용하는 모든 작업은 Store를 통해 통과하고 Objecgt Storae를 접근하는 단일포인트
3. Query (Querier)
· PromQL을 처리하는 작업 지행
· Prometheus의 Sidecar와 연결된 모든 Metric을 수집 및 집계하여 하나의 Interface Query할 수 있게 해줌
· Deduplication 기능을 통해 Query 조회 시 중복 값을 제거 후 Query 결과 값 Return
4. Compactor
· 수집된 Metric을 기준에 따라 장기보관용 Data로 변환 (Rollout)
· Aggregated Data를 준비 (Rollover)
· 비 동기로 동작하며 Resource 상시 할당이 필요하지 않음, 따라서 cron, daemon으로 실행시키는 것이 일반적
5. Rule (Ruler)
· Thanos에 의해 연동된 모든 Prometheus의 Rule을 정의하고 처리
· Prometheus의 Rule과 동일한 문법을 사용하여 유연하게 연동, 구성이 가능
· Query를 통해 실시간 Roll Check 가능
이 외에도 다양한 기능 존재, 차 후 더 추가하겠음
■ Thanos를 통한 Prometheus 문제점 해결
1. 확장성 문제 및 가용성 문제
· 다음과 같은 구성도로 Prometheus의 문제점 해결
· Scale이 가능한 Cloud Object Storage를 구성하고 Data가 쌓이도록 하여 확장성 측면에서 문제 해결
· Thanos의 Clustering 지원으로 하나의 Prometheus Server가 Down, Fetch, Restart 되어도 중단 없이 Metric 수집 가능
2. Retention 문제 해결
· 기존 Prometheus Server는 수집한 Metric을 Memory에 저장 이 후 Local Disk에 Metric을 저장하여 기간이 지나면 사라짐
· 다음과 같은 구성도로 Retention 문제점 해결
· Cloud Object Storage에 Data 수집, Compactor를 통해 Data를 압축/삭제 및 Downsampling하여 저장된 Data를 보관 및 관리 (사실상 영구적으로 Data를 저장/관리할 수 있게 됨)
· Store Gateway로 오래된 Data를 Querier에서 조회 가능
■ Thanos의 Data 접근 방식
· Prometheus Server가 Target Server로 부터 Metric을 수집해 옴, 이 후 Prometheus Server와 Provisioning 된 Data Volum에 TSDB Block 형식으로 쌓이게 됨
· Thanos Sidecar는 쌓여있는 TSDB Block을 Object Storage에 Upload 시킴
· 최근의 값들을 조회할 경우 Thanos Sidecar를 이용하여 Thanos Querier에서 조회 가능
· 오래된 Data 값을 조회할 경우 Thanso Store Gateway를 이용하여 Thanos Querier에서 조회 가능
■ Thanos 구축 Flow (docker-compose로 진행)
■ Thanos를 이용해 가용성, 확장성, Retention이 보장된 Architecture
'DevOps > Monitoring' 카테고리의 다른 글
[Monitoring] Grafana (0) | 2022.04.07 |
---|---|
[Monitoring] Prometheus (0) | 2022.04.07 |