OVERVIEW
Tài liệu này ghi lại quy trình xử lý tình huống ổ đĩa full (100%) do dữ liệu Prometheus TSDB phình to trong Docker volume.
- Dành cho ai: Admin/DevOps vận hành stack monitoring (Prometheus/Grafana/Loki) chạy bằng Docker / Docker Compose.
- Dùng khi nào: Khi
df -hbáo/100%, hoặc/var/lib/docker/volumestăng bất thường, Prometheus chiếm hàng trăm GB. -
Cách đọc nhanh:
- Xác nhận nguyên nhân:
/var/lib/docker/volumes/.../_data/datalà TSDB của Prometheus. - Ưu tiên cách an toàn: đặt retention hợp lý rồi restart (mục A + C).
- Nếu đang full disk và cần “thở” ngay: xoá block cũ nhất có kiểm soát (mục B1).
- Chỉ dùng reset (mục B2) khi chấp nhận mất toàn bộ history.
- Xác nhận nguyên nhân:
Warning: Khi disk đã 100%, nhiều thao tác có thể fail (logrotate, docker, systemd). Hãy giải phóng một ít dung lượng trước (xoá 1 block cũ nhất) để hệ thống hoạt động ổn định trở lại.
Hiện trạng & xác định thủ phạm
1) Disk / đầy 100%
Log lúc login báo lỗi
-bash: echo: write error: No space left on device
cat: write error: No space left on device
Check disk
(venv) root@adminserver-251:/home/hoanghd3# df -h | head
Filesystem Size Used Avail Use% Mounted on
tmpfs 3.2G 333M 2.9G 11% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 470G 446G 12M 100% /
tmpfs 16G 16K 16G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 252M 1.6G 14% /boot
tmpfs 3.2G 4.0K 3.2G 1% /run/user/0
tmpfs 3.2G 8.0K 3.2G 1% /run/user/1001
/dev/rbd0 503G 83G 395G 18% /s3-data
overlay 470G 446G 12M 100% /var/lib/docker/overlay2/20f5afb568dd74e9457fb313390616142b470b7454dc7362e51afa6bc01f7993/merged
2) Top thư mục ngốn dung lượng
Đầu tiên có thể tìm từ thư mục gốc /
(venv) root@adminserver-251:/home/hoanghd3# sudo du -xhd1 / 2>/dev/null | sort -hr | head
446G /
334G /var
97G /home
4.6G /usr
1.3G /root
1.3G /opt
408M /etc
1.1M /tmp
36K /textfile_collector
24K /snap
Xác định /var nhiều dung lượng nhất, tiếp tục tìm thư mục /var
(venv) root@adminserver-251:/home/hoanghd3# sudo du -xhd1 /var 2>/dev/null | sort -hr | head
334G /var/lib
334G /var
231M /var/log
139M /var/cache
2.7M /var/backups
64K /var/snap
52K /var/tmp
24K /var/www
20K /var/spool
4.0K /var/opt
Xác định /var/lib nhiều dung lượng nhất, tiếp tục tìm thư mục /var/lib
(venv) root@adminserver-251:/home/hoanghd3# sudo du -xhd1 /var/lib 2>/dev/null | sort -hr | head
334G /var/lib
332G /var/lib/docker
1006M /var/lib/snapd
273M /var/lib/apt
45M /var/lib/dpkg
6.2M /var/lib/ubuntu-advantage
3.5M /var/lib/command-not-found
1.1M /var/lib/containerd
908K /var/lib/letsencrypt
704K /var/lib/usbutils
Cứ như vậy tìm xác định thư mục lớn nhất và tìm /var/lib/docker -> từ đây ta cũng xác minh được dung lượng lớn phát sinh từ Docker nhưng chưa biết từ ứng dụng nào.
(venv) root@adminserver-251:/home/hoanghd3# sudo du -xhd1 /var/lib/docker 2>/dev/null | sort -hr | head
332G /var/lib/docker
313G /var/lib/docker/volumes
13G /var/lib/docker/containers
7.6G /var/lib/docker/overlay2
20M /var/lib/docker/image
160K /var/lib/docker/network
112K /var/lib/docker/buildkit
16K /var/lib/docker/plugins
8.0K /var/lib/docker/tmp
4.0K /var/lib/docker/swarm
Xác định volume 2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff đang có site lớn nhất
(venv) root@adminserver-251:/home/hoanghd3# sudo du -xhd1 /var/lib/docker/volumes 2>/dev/null | sort -hr | head
313G /var/lib/docker/volumes
312G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff
813M /var/lib/docker/volumes/cb21f492160213c9cb70709c33f7f5a0104df38ad59090a7d55f933bf7c1db40
333M /var/lib/docker/volumes/1a55c0508eafa8eff23b682e3e953f55f2e4afc96f74ae2033bd79535c4b847f
12K /var/lib/docker/volumes/fe9d99925a6159bde8f9c1d16d6619d22a23a4e8489251e2b7f62cd2d654253b
12K /var/lib/docker/volumes/e4bdbbc8cab68e8bc562370832cb7e6041988911a5094c33fb3db22f1f3b8a8a
12K /var/lib/docker/volumes/a2af4bde355eb06890449e0796019535dc293411329f4fa9b23d90801033a377
12K /var/lib/docker/volumes/9742cd4d6a6ad3586290e9fd9a100bbd88dac03d58a7b2feacb5839b5fb43482
12K /var/lib/docker/volumes/63a4d4f33c66ad426109049f44269443114f6825b8177f81e0b2df58c12529d1
12K /var/lib/docker/volumes/52cbcf97f650d1f90c06289db1676e66e05b8a8144f74cc162a3bb7c9339ec3f
Vào sâu xíu nữa sẽ thấy rõ ràng thư mục phình to nhất
(venv) root@adminserver-251:/home/hoanghd3# sudo du -xhd1 /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff 2>/dev/null | sort -hr | head
312G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data
312G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff
✅ Kết luận: volume 2ac7ed... đang chiếm ~312G, gần như toàn bộ nằm ở .../_data/data (khả năng cao là Prometheus TSDB).
Kiểm tra mức độ “rác” của Docker (để tránh dọn nhầm)
(venv) root@adminserver-251:/home/hoanghd3# sudo docker system df -v
Images space usage:
REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS
quay.io/minio/minio latest a98a9d647e70 6 months ago 175MB 0B 175.3MB 1
wordpress latest 1dd7c0f90f66 6 months ago 703MB 0B 703.1MB 4
grafana/grafana latest 008307cdce1d 8 months ago 680MB 0B 680.5MB 1
hoanghd164/nginx-addon latest d82fe1a3c0ed 8 months ago 677MB 0B 677.2MB 1
prom/pushgateway latest a254145ab33a 9 months ago 24.2MB 2.774MB 21.39MB 1
prom/alertmanager latest 91c01b3cec9b 10 months ago 72.3MB 2.774MB 69.53MB 1
prom/blackbox-exporter latest 694775639bf5 11 months ago 26.5MB 2.774MB 23.76MB 1
redis latest fa310398637f 12 months ago 117MB 0B 117MB 0
prom/snmp-exporter main 05fca5bd7452 12 months ago 22.3MB 2.774MB 19.52MB 1
prompve/prometheus-pve-exporter latest 6cf4af921d9c 13 months ago 122MB 0B 121.7MB 1
mongo latest f08e39122805 13 months ago 855MB 0B 854.9MB 0
prom/prometheus latest 24c1b63a5674 14 months ago 292MB 2.774MB 289MB 1
mongo 4.4 d896c071ac69 23 months ago 427MB 0B 427.3MB 1
outlinewiki/outline 0.72.0-3 db3456a4d962 2 years ago 732MB 0B 732.2MB 0
grafana/loki 2.9.0 21abbe8487a0 2 years ago 74.8MB 0B 74.85MB 1
wordpress 6.2.2 5f9504793952 2 years ago 664MB 0B 663.9MB 1
mariadb 10.7.8 895b6c8829c3 2 years ago 396MB 0B 395.7MB 5
postgres 15.2-alpine3.17 ddc12ac7fa27 2 years ago 243MB 0B 243.1MB 0
vicalloy/oidc-server latest d0662f453b20 3 years ago 1.05GB 0B 1.052GB 0
Containers space usage:
CONTAINER ID IMAGE COMMAND LOCAL VOLUMES SIZE CREATED STATUS NAMES
8e26e8e71800 mongo:4.4 "docker-entrypoint.s…" 1 0B 5 weeks ago Exited (14) 2 days ago mongodb
6a4f2a5b8345 prom/blackbox-exporter "/bin/blackbox_expor…" 0 0B 3 months ago Up 3 months blackbox
712357f46932 prom/prometheus "/bin/prometheus --c…" 1 0B 3 months ago Up 2 months prometheus
90b1435db85f prompve/prometheus-pve-exporter "/opt/prometheus-pve…" 0 0B 3 months ago Up 3 months pve-exporter
1848805f14b0 grafana/grafana "/run.sh" 0 106MB 3 months ago Up 3 months grafana
33ef7084b934 prom/pushgateway "/bin/pushgateway" 0 0B 3 months ago Up 3 months pushgateway
9e45ed5c43c0 prom/alertmanager "/bin/alertmanager -…" 1 0B 3 months ago Up 3 months alertmanager
93a425811263 grafana/loki:2.9.0 "/usr/bin/loki -conf…" 0 0B 3 months ago Up 3 months loki
9e84d7ea8dce prom/snmp-exporter:main "/bin/snmp_exporter …" 0 0B 3 months ago Up 3 months snmp-exporter
4559962f654e wordpress:latest "docker-entrypoint.s…" 0 854B 4 months ago Up 4 months l2pro-production
8e8f5ea73490 mariadb:10.7.8 "docker-entrypoint.s…" 0 2B 4 months ago Up 4 months l2pro-db-production
7e35f7d55ce9 wordpress:latest "docker-entrypoint.s…" 0 854B 4 months ago Up 4 months evfai-production
7db87339ef2a mariadb:10.7.8 "docker-entrypoint.s…" 0 2B 4 months ago Up 4 months evfai-db-production
99761009169c wordpress:latest "docker-entrypoint.s…" 0 854B 4 months ago Up 4 months aicsc-production
f6eebf54e51d mariadb:10.7.8 "docker-entrypoint.s…" 0 2B 4 months ago Up 4 months aicsc-db-production
8e1561dd625e mariadb:10.7.8 "docker-entrypoint.s…" 0 2B 5 months ago Up 5 months weautomate-db-production
9fbb6b825642 wordpress:latest "docker-entrypoint.s…" 0 854B 5 months ago Up 5 months weautomate-production
51f450535298 quay.io/minio/minio "/usr/bin/docker-ent…" 0 0B 5 months ago Exited (0) 5 months ago minio
fd863c8015eb hoanghd164/nginx-addon:latest "nginx -g 'daemon of…" 0 984B 7 months ago Up 2 weeks nginx
caa489b2a121 wordpress:6.2.2 "docker-entrypoint.s…" 0 854B 7 months ago Up 4 months stacklab-production
85095ceaed37 mariadb:10.7.8 "docker-entrypoint.s…" 0 2B 7 months ago Up 4 months stacklab-db-production
Local Volumes space usage:
VOLUME NAME LINKS SIZE
9742cd4d6a6ad3586290e9fd9a100bbd88dac03d58a7b2feacb5839b5fb43482 0 0B
cb21f492160213c9cb70709c33f7f5a0104df38ad59090a7d55f933bf7c1db40 0 852.1MB
2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff 1 334GB
9aa5ee65d3ec9fbfa2d4929dcb7f8987cf27e5a1b5c957797a9f0e6e178208bc 1 0B
52cbcf97f650d1f90c06289db1676e66e05b8a8144f74cc162a3bb7c9339ec3f 0 0B
1a55c0508eafa8eff23b682e3e953f55f2e4afc96f74ae2033bd79535c4b847f 0 348.7MB
73d07bac7267b956f220ffb8f09ce059b355f5291169ec49a27c19a1cb9f15d6 0 0B
63a4d4f33c66ad426109049f44269443114f6825b8177f81e0b2df58c12529d1 0 289B
e4bdbbc8cab68e8bc562370832cb7e6041988911a5094c33fb3db22f1f3b8a8a 0 311B
a2af4bde355eb06890449e0796019535dc293411329f4fa9b23d90801033a377 0 0B
fe9d99925a6159bde8f9c1d16d6619d22a23a4e8489251e2b7f62cd2d654253b 1 0B
de2af1e1a95a5e79efd591a776f3f7b31d405cffd30973f6b00624f18dcf61ac 0 0B
d3b2f4cde7e3531f91cabcac02356074662f80ed1e9308cc06fa71b4edc15ef8 0 0B
Build cache usage: 0B
CACHE ID CACHE TYPE SIZE CREATED LAST USED USAGE SHARED
Note:
docker system dfcho thấy Images/Containers không phải nguyên nhân chính. Volume Prometheus mới là thứ phình.
Xác định volume đó đang được mount vào đâu (để chắc chắn không xoá nhầm)
Từ đây đã xác minh được thư mục mount vào là của ứng dụng Prometheus
(venv) root@adminserver-251:/home/hoanghd3# VOL=2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff
sudo docker ps -aq | xargs -r sudo docker inspect \
--format '{{.Name}} {{range .Mounts}}{{if eq .Name "'"$VOL"'"}}{{.Destination}}{{end}}{{end}}' \
| awk '$2!=""{print}'
/prometheus /prometheus
Xác định thư mục metric làm phình dung lượng
(venv) root@adminserver-251:/home/hoanghd3# sudo du -h --max-depth=2 /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data | sort -hr | head
312G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data
312G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data
60G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data/01KDR3N76BNFFAFF6C4HSTRT1A
60G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data/01KC3Z3JPCPZK8DGWW6QE155ST
60G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data/01KAFTHV1FDJ1FGFWDJAHY9X5E
60G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data/01K8VP001G94HJN5DZF5QJRZKE
21G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data/01KETVR992SPGWHC6CD77WXY2D
20G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data/01KE9FJE42PTZJFGH2A0QQXNSE
6.8G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data/01KF0N26YFFT3AEFH7QXM4HXTD
6.7G /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data/01KF6EERW8FA4R0R2QC4BP1GNH
✅ Kết luận: volume này đang được container mount vào Destination là /prometheus và dữ liệu TSDB nằm ở thư mục data/01K... (các TSDB blocks).
Note: Mỗi thư mục
data/01K...là một block TSDB. Xoá block = mất dữ liệu metrics lịch sử của khoảng thời gian block đó.
A) Giải phóng dung lượng ngay (an toàn nhất)
Checklist nhanh (ưu tiên khi còn thao tác được)
- [ ] Xem Prometheus đang chạy với retention gì
- [ ] Giảm retention (theo
timevà/hoặcsize) - [ ] Restart Prometheus để nó tự dọn block cũ
1) Xem Prometheus đang chạy với option gì (retention hiện tại)
sudo docker inspect prometheus --format '{{.Args}}'
# hoặc
sudo docker logs --tail=50 prometheus
2) Cách “đúng bài” để giảm size: giảm retention rồi restart
Nếu bạn đang chạy Prometheus bằng docker compose / docker run, thêm (hoặc sửa) các flag:
- Theo thời gian (vd giữ 15 ngày): dùng
--storage.tsdb.retention.time - Theo dung lượng (vd cap 50GB): dùng
--storage.tsdb.retention.size
--storage.tsdb.retention.time=15d
--storage.tsdb.retention.size=50GB
Rồi restart container:
sudo docker restart prometheus
Warning: Prometheus sẽ tự xoá block cũ theo retention sau khi chạy. Nhưng nếu disk đang 100%, bạn có thể cần dọn “mạnh” hơn (mục B) để tạo khoảng trống cho quá trình xoá/compact diễn ra.
B) Dọn mạnh (nhưng vẫn kiểm soát được) nếu cần lấy lại hàng trăm GB
Option B1 (ít rủi ro, không mất toàn bộ): xoá các block cũ nhất trong TSDB
Các thư mục data/01K... chính là block. Bạn có thể xoá block cũ theo “thời gian” sau khi xác định cái nào cũ nhất.
- Liệt kê block theo thời gian sửa đổi (cũ lên đầu):
DATA=/var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data
sudo ls -lt --time=mtime "$DATA" | head
sudo ls -lt --time=mtime "$DATA" | tail
- Xoá 1–2 block cũ nhất để giải phóng nhanh (mỗi cái của bạn đang ~
60G):
# ví dụ xoá 1 block (thay tên đúng block bạn muốn xoá)
sudo rm -rf "$DATA/01KDR3N76BNFFAFF6C4HSTRT1A"
- Restart Prometheus:
sudo docker restart prometheus
Warning: Xoá block nghĩa là mất dữ liệu metrics lịch sử của khoảng thời gian đó. Prometheus thường vẫn chạy bình thường sau restart, nhưng đừng xoá “bừa” nhiều block nếu bạn cần giữ lịch sử.
Option B2 (mạnh nhất, nhanh nhất): reset toàn bộ Prometheus data
Chỉ dùng khi bạn chấp nhận mất toàn bộ history metrics.
sudo docker stop prometheus
sudo rm -rf /var/lib/docker/volumes/2ac7edc7177d13eec597cf6453ec9bf24be4d2f410ef15dfc1b376b0dca234ff/_data/data/*
sudo docker start prometheus
C) Fix tận gốc để không phình lại
1) Bật retention rõ ràng (khuyên dùng: size + time)
Ví dụ:
time:15dsize:50GB
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--storage.tsdb.retention.time=15d'
- '--storage.tsdb.retention.size=50GB'
Note: Nếu chỉ đặt
retention.timequá lớn (vd360d) thì TSDB sẽ phình theo thời gian rất nhanh, đặc biệt khi scrape nhiều target/high-cardinality.
Kiểm tra cấu hình hiện tại & áp dụng thay đổi từ ví dụ thực tế
1) Xác nhận args hiện tại của Prometheus
(venv) root@adminserver-251:/home/monitoring/prometheus# docker inspect prometheus --format '{{.Args}}'
[--config.file=/etc/prometheus/prometheus.yml --storage.tsdb.retention.time=360d --web.enable-remote-write-receiver --web.listen-address=:9090]
✅ Nhận xét nhanh: --storage.tsdb.retention.time=360d là rất dài, dễ dẫn tới volume phình hàng trăm GB.
2) Ví dụ docker-compose.yml với retention hợp lý
version: '3'
services:
loki:
image: grafana/loki:2.9.0
command: -config.file=/etc/loki/loki.yml
container_name: loki
restart: unless-stopped
ports:
- "3100:3100"
volumes:
- /home/monitoring/loki:/etc/loki
- /home/monitoring/loki/tmp:/var/lib/loki
- /home/monitoring/loki/rules/fake:/etc/loki/rules/fake
networks:
- monitoring
prometheus:
image: prom/prometheus
container_name: prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- /home/monitoring/prometheus/data:/etc/prometheus/data
- /home/monitoring/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml
- /etc/hosts:/etc/hosts
privileged: true
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.retention.time=60d
- --storage.tsdb.retention.size=100GB
- --web.enable-remote-write-receiver
- --web.listen-address=:9090
networks:
- monitoring
pushgateway:
image: prom/pushgateway
container_name: pushgateway
restart: unless-stopped
ports:
- "9091:9091"
networks:
- monitoring
pve_exporter:
image: prompve/prometheus-pve-exporter
container_name: pve-exporter
restart: unless-stopped
ports:
- "9221:9221"
volumes:
- /home/monitoring/prometheus/pve/pve.yml:/etc/prometheus/pve.yml
networks:
- monitoring
snmp-exporter:
image: prom/snmp-exporter:main
container_name: snmp-exporter
restart: unless-stopped
ports:
- "9116:9116"
volumes:
- /home/monitoring/prometheus/snmp/snmp.yml:/etc/snmp_exporter/snmp.yml
- /etc/hosts:/etc/hosts
networks:
- monitoring
grafana:
image: grafana/grafana
container_name: grafana
restart: unless-stopped
ports:
- "9092:3000"
environment:
GF_INSTALL_PLUGINS: grafana-polystat-panel,yesoreyeram-boomtable-panel,alexanderzobnin-zabbix-app,agenty-flowcharting-panel
GF_SECURITY_ADMIN_PASSWORD: Aa@1234567
volumes:
- /home/monitoring/grafana/dashboard.yml:/etc/grafana/provisioning/dashboards/default.yml
- /home/monitoring/grafana/datasources.yml:/etc/grafana/provisioning/datasources/default.yml
- /home/monitoring/grafana/dashboards:/var/lib/grafana/dashboards
networks:
- monitoring
alertmanager:
image: prom/alertmanager
container_name: alertmanager
restart: unless-stopped
ports:
- "9093:9093"
volumes:
- /home/monitoring/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml
- /home/monitoring/alertmanager/template.tmpl:/etc/alertmanager/template.tmpl
command:
- --config.file=/etc/alertmanager/alertmanager.yml
networks:
- monitoring
blackbox:
image: prom/blackbox-exporter
container_name: blackbox
restart: unless-stopped
tty: true
ports:
- 9095:9115
dns: 1.1.1.1
command: --config.file=/etc/blackbox/blackbox.yml
volumes:
- /home/monitoring/blackbox/blackbox.yml:/etc/blackbox/blackbox.yml
networks:
- monitoring
networks:
monitoring:
name: monitoring
3) Recreate Prometheus để áp dụng cấu hình
(venv) root@adminserver-251:/home/monitoring# docker-compose up -d --force-recreate prometheus
[+] Running 1/1
⠿ Container prometheus Started 2.5s
4) Xác nhận container đang chạy
(venv) root@adminserver-251:/home/monitoring# docker ps | head
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b3fa5bc7f1fb prom/prometheus "/bin/prometheus --c…" 53 seconds ago Up 52 seconds 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp prometheus
6a4f2a5b8345 prom/blackbox-exporter "/bin/blackbox_expor…" 3 months ago Up 3 months 0.0.0.0:9095->9115/tcp, [::]:9095->9115/tcp blackbox
90b1435db85f prompve/prometheus-pve-exporter "/opt/prometheus-pve…" 3 months ago Up 3 months 0.0.0.0:9221->9221/tcp, :::9221->9221/tcp pve-exporter
1848805f14b0 grafana/grafana "/run.sh" 3 months ago Up 3 months 0.0.0.0:9092->3000/tcp, [::]:9092->3000/tcp grafana
33ef7084b934 prom/pushgateway "/bin/pushgateway" 3 months ago Up 3 months 0.0.0.0:9091->9091/tcp, :::9091->9091/tcp pushgateway
9e45ed5c43c0 prom/alertmanager "/bin/alertmanager -…" 3 months ago Up 3 months 0.0.0.0:9093->9093/tcp, :::9093->9093/tcp alertmanager
93a425811263 grafana/loki:2.9.0 "/usr/bin/loki -conf…" 3 months ago Up 3 months 0.0.0.0:3100->3100/tcp, :::3100->3100/tcp loki
9e84d7ea8dce prom/snmp-exporter:main "/bin/snmp_exporter …" 3 months ago Up 3 months 0.0.0.0:9116->9116/tcp, :::9116->9116/tcp snmp-exporter
fd863c8015eb hoanghd164/nginx-addon:latest "nginx -g 'daemon of…" 7 months ago Up 2 weeks 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:9022->9022/tcp, :::9022->9022/tcp nginx
5) Xác nhận args sau khi áp dụng retention
(venv) root@adminserver-251:/home/monitoring# docker inspect prometheus --format '{{.Args}}'
[--config.file=/etc/prometheus/prometheus.yml --storage.tsdb.retention.time=60d --storage.tsdb.retention.size=100GB --web.enable-remote-write-receiver --web.listen-address=:9090]
✅ Đã có cả retention.time và retention.size.
Xác nhận kết quả sau khi dọn (disk về mức an toàn)
(venv) root@adminserver-251:/home/monitoring# df -h | head
Filesystem Size Used Avail Use% Mounted on
tmpfs 3.2G 349M 2.8G 11% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 470G 202G 245G 46% /
tmpfs 16G 16K 16G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 252M 1.6G 14% /boot
tmpfs 3.2G 4.0K 3.2G 1% /run/user/0
tmpfs 3.2G 8.0K 3.2G 1% /run/user/1001
/dev/rbd0 503G 83G 395G 18% /s3-data
overlay 470G 202G 245G 46% /var/lib/docker/overlay2/20f5afb568dd74e9457fb313390616142b470b7454dc7362e51afa6bc01f7993/merged
✅ Disk / giảm từ 100% xuống 46% — trạng thái ổn định hơn.
Gợi ý vận hành để tránh tái diễn
- Luôn đặt retention: tối thiểu theo
size(có “hard cap”), cộng thêmtimeđể giới hạn lịch sử. -
Khi thấy TSDB tăng bất thường:
- xem lại scrape interval, số target và đặc biệt high-cardinality labels (vd
pod,container,path,request_id…). -
Theo dõi cảnh báo:
-
Disk usage
/và/var/lib/docker - Prometheus TSDB size/compaction issues (nếu có dashboard/alert)
- xem lại scrape interval, số target và đặc biệt high-cardinality labels (vd
Note: Nếu bạn dùng
--web.enable-remote-write-receiver, cân nhắc kiểm tra xem có nguồn nào “spam remote write” hoặc đẩy series quá nhiều (tăng cardinality) làm TSDB phình nhanh.