Node Exporter ipmitool 文本插件
通过 Node Exporter的Textfile Collector扩展 可以将几乎所有文本转换成Prometheus的metrics,也包括 IPMI 。这种方式可以帮助我们监控服务器的硬件:
准备工作
备注
由于 IPMI工具ipmitool 工具命令执行需要 root
权限,所以类似 Node Exporter smartctl 文本插件 完成配置
创建一个
/var/lib/node_exporter/textfile_collector/
用于存放--collector.textfile.directory
对应的*.prom
文件,以便转换成metrics:
sudo mkdir -p /var/lib/node_exporter/textfile_collector
# 目录属主按照 node_exporter 运行进程的owner设置
# 这里设置按 systemd 配置 node_exporter.service 的User/Group 以便 node_exporter 进程能够读取目录下文件
sudo chown prometheus:promethus /var/lib/node_exporter/textfile_collector
Prometheus社区提供了 node-exporter-textfile-collector-scripts ,将这些脚本下载到服务器上:
git clone git@github.com:prometheus-community/node-exporter-textfile-collector-scripts.git
sudo mv node-exporter-textfile-collector-scripts /etc/prometheus/
这里将使用 /etc/prometheus/node-exporter-textfile-collector-scripts/ipmitool
脚本 来转换服务器的 ipmitool sensor
命令输出成 Node Exporter的Textfile Collector扩展 可处理的兼容格式
执行脚本
社区推荐使用 sponge
来自动写输出,所以先切换到 root
执行以下命令生成一个案例检查(详见 Node Exporter smartctl 文本插件 ):
# 注意这条命令是切换到root用户身份执行的
sudo su -
ipmitool sensor | sudo -u prometheus /etc/prometheus/node-exporter-textfile-collector-scripts/ipmitool | sudo -u prometheus sponge /var/lib/node_exporter/textfile_collector/ipmitool.prom
然后检查输出内容 /var/lib/node_exporter/textfile_collector/ipmitool.prom
可以看到类似:
# HELP node_ipmi_temperature_celsius Temperature sensor reading from ipmitool
# TYPE node_ipmi_temperature_celsius gauge
node_ipmi_temperature_celsius{sensor="37-Fuse"} 38.000000
node_ipmi_temperature_celsius{sensor="15-VR P1 Mem"} 34.000000
node_ipmi_temperature_celsius{sensor="02-CPU 1"} 40.000000
node_ipmi_temperature_celsius{sensor="16-VR P1 Mem"} 35.000000
...
这个文件就是 Node Exporter的Textfile Collector扩展 可以处理的标准格式
检查
/var/lib/node_exporter/textfile_collector/ipmitool.prom
内容无误之后,在/etc/cron.d
目录下添加配置文件node_exporter_textfile_collector
:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * root ipmitool sensor | sudo -u prometheus /etc/prometheus/node-exporter-textfile-collector-scripts/ipmitool | sudo -u prometheus sponge /var/lib/node_exporter/textfile_collector/ipmitool.prom
* * * * * root /etc/prometheus/node-exporter-textfile-collector-scripts/smartmon.sh | sudo -u prometheus sponge /var/lib/node_exporter/textfile_collector/smartmon.prom
备注
上述配置详情参考 Node Exporter smartctl 文本插件
配置 node_exporter
按照 Node Exporter 中 Systemd进程管理器 运行服务配置,修订 /etc/systemd/system/node_exporter.service
:
ExecStart=/usr/local/bin/node_exporter \
--collector.textfile.directory=/var/lib/node_exporter/textfile_collector
重启 node_exporter
服务
配置 Grafana Dashboard
在 Grafana通用可视分析平台 中 import
Grafana Dashboard 13177: IPMI for Prometheus
完成后Dashboard:
在 Grafana通用可视分析平台 中 import
Grafana Dashboard 15765: IPMI Exporter (这个面板看起来更清晰,不过温度显示我比较喜欢 Time series
表现方式,所以我添加了一个视图)
完成后Dashboard: