Docker部署node-exporter时node_filesystem_size_bytes指标与df查询结果不一致
问题根因
该问题是Docker部署node-exporter时的典型配置疏漏,核心原因如下:
- 你已将宿主机根目录以只读方式挂载到容器内的
/rootfs路径,但启动参数中未添加--path.rootfs=/rootfs配置项,node-exporter无法正确识别宿主机的挂载点层级,会错误将宿主机根分区的容量映射到所有未被忽略的挂载路径上,最终出现/和/home分区采集值完全一致的问题。 - 你当前配置的
--collector.filesystem.ignored-mount-points规则中额外添加了rootfs/前缀,和路径映射逻辑冲突,也会干扰挂载点的过滤规则。
修复方案
直接修改docker-compose.yml中node-exporter的启动配置即可,修改后的完整配置参考如下:
version: '3.7' services: node-exporter: image: prom/node-exporter volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' # 新增宿主机根目录映射参数 - '--path.rootfs=/rootfs' - '--collector.filesystem.ignored-mount-points' # 移除规则中的rootfs/前缀,添加rootfs参数后node-exporter会自动去掉该前缀识别挂载点 - "^/(sys|proc|dev|host|etc|var/lib/docker/containers|var/lib/docker/overlay2|run/docker/netns|var/lib/docker/aufs)($$|/)" ports: - 9100:9100 restart: always cadvisor: image: google/cadvisor volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro ports: - 18080:8080 restart: always
验证步骤
修改配置后执行docker-compose up -d重启node-exporter容器,等待1分钟后查询node_filesystem_size_bytes指标,对比/和/home分区的数值,和宿主机执行df -h的结果完全一致即为修复完成。
内容的提问来源于stack exchange,提问作者ahdr
相关产品推荐
相关产品推荐

