Node Exporter的Textfile Collector扩展

textfile collector是Proetheus的一个扩展功能,可以通过定时任务输出状态,类似于 PushgatewayPushgateway 被用于服务类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 文件目录):

为脚本增加时间戳输出到 *.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 ,将这些脚本下载到服务器上:

下载 node-exporter-textfile-collector-scripts 到本地( /etc/prometheus )
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 ExporterSystemd进程管理器 运行服务配置,修订 /etc/systemd/system/node_exporter.service :

/etc/systemd/system/node_exporter.service 添加 textfile Collector 输出数据目录
ExecStart=/usr/local/bin/node_exporter \
    --collector.textfile.directory=/var/lib/node_exporter/textfile_collector

重启 node_exporter 服务

备注

实际上 Node Exporter 默认就启用了 textfile Collector ,但是需要配置一个输出数据目录参数

实践案例

参考