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