Node Exporter的Textfile Collector扩展¶
textfile
collector是Proetheus的一个扩展功能,可以通过定时任务输出状态,类似于 Pushgateway
。 Pushgateway
被用于服务类metrics,而 textfile
模块则用于处理主机的metrics。
在 Node Exporter 运行参数上加上 --collector.textfile.directory
参数,则 collector 就会处理该目录下所有使用 Prometheus Exposition formats 格式的以 *.prom
后缀的文件。(不支持时间戳)
( 汗,这段我没有理解,等以后再折腾 ) 对于一个cron任务要实现自动推送完成时间,可以采用如下方法(假设脚本名字是 count_hosts
用于计算服务器数量, /var/lib/node_exporter/textfile_collector/
是用来对应 --collector.textfile.directory
的存储 *.prom
文件目录):
echo count_hosts_completion_time $(date +%s) > /var/lib/node_exporter/textfile_collector/count_hosts.prom.$$
mv /var/lib/node_exporter/textfile_collector/count_hosts.prom.$$ /var/lib/node_exporter/textfile_collector/count_hosts.prom
社区脚本¶
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/
配置 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
服务
备注
实际上 Node Exporter 默认就启用了 textfile Collector ,但是需要配置一个输出数据目录参数
实践案例¶
参考¶
Prometheus Textfile Collectors 关于如何将Nagios监控输出改成Prometheus的兼容metrics
Using the textfile collector from a shell script 这个文档非常简单清晰,提供了一个脚本案例将自己的输出结果转换成Prometheus textfile collector的案例,可以借鉴