Loki(2.6.1) 데이터량 확인 및 유지기간 설정 방법 확인
1. 데이터량 확인 방법
- Prometheus 에서 아래 metric을 쿼리
loki_ingester_chunk_stored_bytes_total
- 백분율 등의 형태로도 쿼리 가능.
(sum(loki_ingester_chunk_stored_bytes_total) / sum(node_filesystem_size_bytes{mountpoint="/home"}) ) * 100
1) 시각화 시안
- 퍼센트 게이지와 disk 크기 총량
- 시계열 그래프
- 텍스트

2. 유지기간 설정
1) 설정 방법: Loki compactor 설정
- compactor: index(로그들의 색인 파일)를 압축 / 삭제하는 역할.
- 삭제 설정:
retention_enabled: true
.- default는 false.
- 설정 파일 예시
- 2시간마다 로그 삭제 실시
- 30일 이상 지난 로그들 삭제
- 삭제 설정:
compactor:
working_directory: /data/retention # 작업에 필요한 temp 파일들이 생성되는 장소
compaction_interval: 10m # compaction(압축) 의 적용 주기. 만약 적용 주기보다 실제 적용이 늦어졌을 경우, 즉시 적용됨.
retention_enabled: true # 데이터 삭제 위해 필요.
retention_delete_delay: 2h # delete(압축) 의 적용 주기. 만약 적용 주기보다 실제 적용이 늦어졌을 경우, 즉시 적용됨.
retention_delete_worker_count: 150 # chunk 를 삭제할 goRoutine worker의 갯수를 제한할 수 있음.
delete_request_store: filesystem # retention_enabled가 true 일 경우 필요. s3, filesystem 등. loki-config의 schema-config -> object store 에 입력한 값과 동일한 값 입력할 것.
limits_config:
retention_period: 744h # 모든 로그 스트림에 공통적으로 적용됨.
retention_stream: # 특정 로그스트림에 적용할 설정값.
- selector: '{namespace="dev"}' # logQL 기반으로 index들을 선택할 수 있다.
priority: 1 # retention 설정의 우선도. 중복 적용되는 log stream이 있을 경우 priority 통해 적용 우선순위 구분.
period: 24h # selector 에 의해 선택된 stream 에만 적용할 period
# per_tenant_override_config: /etc/overrides.yaml # 추가 설정 파일을 활용해 로그 retention 룰을 override 할 수 있음.

아키텍쳐: https://grafana.com/docs/loki/latest/get-started/architecture/#loki-architecture
Compactor 설명 링크: https://grafana.com/docs/loki/latest/get-started/architecture/#loki-architecture
3. 유지기간 설정 테스트 (6/13 시행)
1) 테스트용 loki-config.yml
- 매 10분마다 삭제(retention) 실행.
- 240시간(10일) 이상 지난 로그 삭제
compactor:
working_directory: /data/retention
compaction_interval: 10m
retention_enabled: true
retention_delete_delay: 10m
retention_delete_worker_count: 150
delete_request_store: filesystem
limits_config:
retention_period: 240h
2) delete 테스트 이전 chunk 상태
- 10일 이상 지난 로그들(~6/3) 이 남아있음.

3) 테스트 완료 후 chunk 상태
- 10일 이상 지난 chunk들이 삭제됨.

4. 기타
- 지원하지 않는 옵션
- 특정 시간대에 compactor 실행 (ex: 매일 X 시에 만료 로그 삭제)
- 저장소 사용량이 임계치 이상일 때 compactor 실행 (ex: 로그가 30gb 이상일 때 XX 만큼 삭제)
'TIL > Monitoring(k8s, grafana)' 카테고리의 다른 글
[AI, Kubeflow] Kubeflow bootstrap 소개 (0) | 2025.01.24 |
---|---|
[Loki, K8s] 원인 불명의 Loki - CrashLoopBackOff 문제 해결 (EBS 용량 ) (0) | 2025.01.07 |
[RKE2] Too many open files 로 발생하는 crashLoopBackOff 에러 해결 (0) | 2024.12.01 |
[모니터링, Loki, 로그] Promtail 활용한 syslog 수집 (0) | 2024.11.26 |
[Prometheus] 적절한 scrape_interval을 찾아.. - Node exporter 코드 분석 (3) | 2024.11.06 |