使用Zabbix监控Node Exporter(Prometheus)的数值
这是Zabbix AdcentCalendar 2019的第15篇文章。
即使无需使用Zabbix代理,只要在安装了Prometheus的Node Exporter的服务器上,就可以在Zabbix中进行监视。
新增的功能
在Zabbix 4.0以后,添加了一些功能,使得可以通过Zabbix的标准功能进行更多样化的监控。
通过使用类型为”HTTP代理”的项目(监视设置),可以发送HTTP请求,并将其结果作为项目的值。这样一来,就可以调用Web服务等,从结果中提取字符串和值,以确定是否正常以及获取度量标准。
此外,由于Web服务中的响应采用JSON格式,因此还加强了从中提取值的灵活性。这称为保存前处理,它是一种从获取的值中进行处理,然后将其保存为项目值的功能。保存前处理功能支持数值计算、字符串转换以及处理JSON的JSONPath功能。因此,我们可以从Web服务接收到的值中灵活地提取所需的值,这些值可能是数值,也可能是特定属性的字符串值,我们可以对其进行监视。
除此之外,在Zabbix 4.4中还可以使用JavaScript进行保存前处理,并对Prometheus进行功能扩展。
通过利用它们,可以从Prometheus的Node Exporter接收信息,并像普通的Zabbix代理一样使用它来监控服务器的状态。
让我们尝试进行监视设置。
在Zabbix 4.4中,已经提供了与Prometheus的Node Exporter兼容的监控模板,因此我们可以使用它来进行监控。
引入环境
这次我们将在CentOS 8上安装Node Exporter。
为了简化说明,我们将禁用SELinux,但请考虑设置适当的策略。
安装Node Exporter
下载Node Exporter的可执行文件,并将其放置在/opt/node_exporter目录下。
# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
# tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz
# mv node_exporter-0.18.1.linux-amd64/ /opt/node_exporter
# ls /opt/node_exporter/
LICENSE NOTICE node_exporter
#
为了将启动用户设置为“prometheus”用户,我们将创建一个用户。
# useradd prometheus
创建用户后,将Node Exporter执行文件的所有者设为prometheus。
# chown -R prometheus:prometheus /opt/node_exporter/
我們還將執行自動啟動的設定。
# vi /usr/lib/systemd/system/node_exporter.service
# systemctl daemon-reload
# systemctl start node_exporter
我已经将/usr/lib/systemd/system/node_exporter.service的内容修改如下。
[Unit]
Description=Node Exporter for Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/opt/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
默认情况下,node_exporter会在9100端口上接受请求,因此在firewalld的设置中将其配置为可访问。
# firewall-cmd --add-port=9100/tcp --zone=public --permanent
# firewall-cmd --reload
注册主机和监控模板的链接
在Zabbix中注册主机。

在主机注册时,我还会附加一个指向模板的链接。
可链接的模板是「Template OS Linux by Prom」。

由于Node Exporter的端口号等信息是在模板宏中设置的,因此如果根据主机而更改端口号的话,可以通过在主机宏中进行覆写来进行监控,并且能够根据各个主机的信息来进行监视。
过一段时间,选择注册的主机并在「最新数据」中显示,监视项目的值开始获取。

最后
尽管本次只介绍了Node Exporter,但将来可能会创建其他Exporter的监控模板。
可能已经有其他人创建了这样的模板,但我也希望自己能研究并创建出来。
明天会是谁呢?
请多多关照。