Kubernetes

[Prometheus] 데이터 보관 기간 설정

비번변경 2022. 6. 5. 22:19

Prometheus의 데이터 보관기간을 수정하려고 한다. 방법을 정리해둔다.

 

 

Prometheus 저장소 구성 설정

Prometheus의 데이터 저장소를 구성하는 설정 중 중요한 것은 아래와 같다.

  • --storage.tsdb.path : Prometheus의 데이터베이스 경로. 기본값은 /data이다.
  • --storage.tsdb.retention.time : 데이터 보관기간. 기본값은 15일이다.
  • --storage.tsdb.retention.size : 유지할 스토리지 블록의 최대 바이트 수. 오래된 데이터부터 제거하며 기본값은 0 또는 disable이다.
  • --storage.tsdb.retention : storage.tsdb.retention.time에 의해 Deprecated 되었다.
  • --storage.tsdb.wal-compression : 

 

즉, --storage.tsdb.retention.time을 prometheus 프로세스에 설정하도록 한다. 설정 방법은 크게 다음과 같다.

 

 

Start 시 명령형 인자로 전달

--storage.tsdb.retention.time는 명령줄 플래그로 설정할 수 있는 시스템 매개변수다. 따라서 prometheus 시작 시 아래와 같은 형태로 전달할 수 있다.

prometheus --config.file=prometheus.yml --storage.tsdb.retention.time=365d

전달할 수 있는 명령형 인자는 https://manpages.debian.org/unstable/prometheus/prometheus.1.en.html를 참고한다.

 

 

prometheus.service 파일 수정

systemd로 서비스를 관리하는 경우, prometheus.service 파일을 이용하여 retention을 전달할 수 있다.

vi /etc/systemd/system/prometheus.service
# 또는
vi /usr/lib/systemd/system/prometheus.service
# 등등


[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries \
    --web.external-url=http://34.89.26.156:9090 \
    --storage.tsdb.retention.time=1y # 추가
[Install]
WantedBy=multi-user.target

파일 수정 후에는 systemctl을 이용하여 서비스를 재시작해야 한다.

systemctl restart prometheus

 

 

kube-prometheus-stack Chart 사용 시

values.yaml의 prometheus.prometheusSpec.retention 항목의 값을 수정하여 적용한다.

vi kube-prometheus0-stack/values.yaml

prometheus:
  prometheusSpec:
    ## How long to retain metrics
    ##
    retention: 10d

수정한 후에는 helm install, upgrade로 적용한다. helm-operator를 사용하고 있다면 kubectl apply로 적용할 수 있다.

 

 

 

참고 문서

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

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

https://stackoverflow.com/questions/59298811/increasing-prometheus-storage-retention