解决在prometheus-opretor中部署的node-export采集主机根目录数据不正常的问题

问题描述

在采用prometheus-opretor默认的配置部署完成整个prometheus环境监控时,发现部分集群节点上的主机磁盘使用情况和总容量等指标的数据不准确。
涉及的指标有:node_filesystem_avail_bytes、node_filesystem_size_bytes等

问题起因思考

由于chart部署的node-export采用的是docker部署的形式
官方推荐的是二进制程序的本机安装,但考虑到部署和后期运维的便捷性还是决定采用docker部署
在查询官方的gitbub的页面时,发现如果需要docker部署要设置相关监控路径的目录的挂载和绑定
而在默认的chart脚本中是没有相关参数的配置,所以要手动加上

1
2
3
4
5
6
7
# 官方参看docker部署命令
docker run -d \
--net="host" \
--pid="host" \
-v "/:/host:ro,rslave" \
quay.io/prometheus/node-exporter \
--path.rootfs /host

问题解决方法

配置文件如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
## prometheus-operator chart脚本的value文件
prometheus-node-exporter:
image:
repository: registry.c2cloud.cn/library/node-exporter
tag: v0.18.1
resources:
limits:
cpu: 100m
memory: 128Mi
podLabels:
## Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards
##
jobLabel: node-exporter
extraArgs:
- --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+)($|/)
- --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$
- --path.rootfs=/host # 指定根目录采集路径
extraHostVolumeMounts: # 绑定容器目录与外部目录
- name: rootfs
hostPath: /
mountPath: /host
readOnly: true

参考链接

node-export 官方地址