得益于对云原生和容器监控的优势,如今,Prometheus监控得到越来越多企业的青睐。
对于已经部署Zabbix监控系统又想尝试Prometheus的企业,完全替换Prometheus存在困难或者没有必要,更多地是希望保留Zabbix的同时引入Prometheus。好在自4.2版本开始,Zabbix增加了对Prometheus数据源的接入,因此Zabbix 4.2及后续版本都可以使用Zabbix对接Prometheus监控。
Prometheus通过Exporters组件来收集数据。Exporters是一类数据采集组件的总称,它负责从目标处搜集数据,并将其转化为Prometheus支持的格式,并且暴露出一个HTTP API地址,等待Prometheus Server拉取数据并进行数据处理。
Zabbix对接Prometheus也是通过HTTP代理,拉取Exporters提供的大量Prometheus指标数据,然后通过内置的Prometheus pattern进行数据的处理和筛选,从而获取监控值。
本文将介绍如何使用Zabbix的Prometheus pattern项来对接Prometheus数据源。以Prometheus官方提供的Node_exporter采集器为例。
Node_exporter部署包可以从Prometheus官网进行下载。地址:https://prometheus.io/download/
可以选择所需的版本,然后复制相关链接在服务器上面使用wget或curl进行下载,抑或直接下载后再上传到服务器。
vim /usr/lib/systemd/system/node_exporter.service
将以下内容复制到文件中:
[Unit] Description=node-exporter service After=network.target [Service] User=prometheus Group=prometheus KillMode=control-group Restart=on-failure RestartSec=60 ExecStart=/data/test/prometheus/node_exporter-1.5.0.linux-amd64/node_exporter \ --web.listen-address=:9100 \ --collector.systemd \ --collector.systemd.unit-whitelist=(sshd|nginx).service \ --collector.processes \ --collector.tcpstat [Install] WantedBy=multi-user.target
注意,启动命令的路径要根据实际的路径进行修改。
useradd prometheus
systemctl daemon-reload
systemctl start node_exporter.service
systemctl status node_exporter.service
然后访问IP:9100端口
如图所示表示部署成功,并且成功采集到数据。
Node_exporter是Prometheus用于监控服务器的采集器,其相关的采集指标说明可以参考以下地址,然后按需进行监控:
参考指标地址:https://blog.csdn.net/qq_33326449/article/details/126663517
添加一个宏值:用以灵活监控多个主机
首先使用HTTP代理监控项,获取Prometheus的指标数据。
这里以监控服务器的内存大小为例:
然后添加处理步骤:
然后添加主机进行测试
修改宏值:
如图所示,成功对接,并且获取到监控数据。
错误信息