Notice
Recent Posts
Recent Comments
Today
Total
05-03 00:03
Archives
관리 메뉴

Jeongchul Kim

Prometheus 데이터 저장소 보관 기간 설정 본문

카테고리 없음

Prometheus 데이터 저장소 보관 기간 설정

김 정출 2023. 1. 4. 18:04

Prometheus 데이터 저장소 보관 기간 설정

 

Prometheus의 데이터 저장소 보관 기간을 Default 15일로 되어 있어, 스토리지 대비하여 365일로 설정하려고 합니다.

TSDB 패스인 /data에 500GB 정도의 PVC가 할당되어 있었고, 매일 기준 1.3GB가 누적되어 디스크를 사용하고 있는 상황에서 일년 단위 보관으로 결정하였습니다. 중요 데이터는 백업 정책을 세울 필요가 있어보입니다.

https://prometheus.io/docs/prometheus/latest/storage/ 

/data 디렉터리 구조를 보면 시계열 데이터를 디스크에 저장하는 형태이고, 수집된 샘플은 2시간 단위로 그룹화되며, 각 그룹은 chunk 파일, 메타 파일(meta.json), 시계열로 인덱싱한 인덱스 파일(index.json)을 포함하고 있습니다. 삭제 시에는 chunk 파일에 데이터를 바로 삭제하지 않고, 삭제 기록인 tombstone 파일에 저장됩니다. 바로 수신 받는 샘플은 메모리에 올라가 유지되지 않습니다. WAL(Write-Ahead-Log)에 의해 Promethues 서버가 재시작되거나, Crash로부터 보호가 됩니다.

 
./data
├── 01BKGV7JBM69T2G1BGBGM6KB12
│   └── meta.json
├── 01BKGTZQ1SYQJTR4PB43C8PD98
│   ├── chunks
│   │   └── 000001
│   ├── tombstones
│   ├── index
│   └── meta.json
├── 01BKGTZQ1HHWHV8FBJXW1Y3W0K
│   └── meta.json
├── 01BKGV7JC0RY8A6MACW02A2PJD
│   ├── chunks
│   │   └── 000001
│   ├── tombstones
│   ├── index
│   └── meta.json
├── chunks_head
│   └── 000001
└── wal
    ├── 000000002
    └── checkpoint.00000001
        └── 00000000

 

Prometheus의 데이터 저장소를 구성하는 옵션은 다음과 같습니다.

  • --storage.tsdb.path: 데이터베이스 패스: Default는 /data
  • --storage.tsdb.retention.time: 데이터 보관 기간으로 Default는 15일(15d)
  • --storage.tsdb.retention.size: 보관할 스로지 블록의 최대 바이트 수이며, 가장 오래된 데이터가 먼저 제기되면서 해당 크기를 유지합니다. 

 

Prometheus 서버 설정에 해당 옵션을 적용하기 위해 서버 시작 시 명령형 인자로 전달이 가능합니다.

Kubernetes 상에서 StatefulSet으로 관리가 되고 있어 해당 Argument를 수정하였습니다.

$ kubectl edit StatefulSet -npromethus prometheus

Prometheus Pod 확인하여 정상 시작 여부를 확인하고 Prometheus WEB으로 접속해 확인합니다.

읽어주셔서 감사합니다.


Comments