zabbix4.2 使用Prometheus进行数据收集

zabbix4.2发布后,开始支持使用Prometheus进行数据收集。这非常符合我们想基于zabbix+Prometheus做监控中心的一个想法,于是便研究了一下。

zabbix对Prometheus的支持分为两种,

  1. Prometheus pattern
  2. Prometheus to json

其中Prometheus pattern 是用于添加普通监控项,而Prometheus to json 可以用于通过自动发现批量添加监控项。
下面分别详细介绍了两者的配置方法。

一、Prometheus pattern的使用方法

1、 首先在zabbix上新增一个类型为http-agent类的监控项1,url填写Prometheus node_exporter的url,一般为http://ip:port/metrics
具体如下:
在这里插入图片描述2、再创建一个类型为Dependent item的监控项2,所依赖的监控项为刚刚创建的http agent监控项1,具体如下:
在这里插入图片描述
3、在监控项2的Preprocessing中添加预处理程序,预处理程序的Name选择 Prometheus pattern ,Parameters填写node_exporter中想要添加到zabbix中的监控项名称,点击保存。
在这里插入图片描述4、过一分钟 可以在最新数据中看到这个监控项已经获取到数据了。
在这里插入图片描述二、Prometheus to json的使用方法
由于Prometheus to json是针对自动发现规则使用的,所以需要先新增一个自动发现规则。
1、新增自动发现规则,类型选择Dependent item,依赖的监控项还是前面创建的node_exporter监控项1.
在这里插入图片描述2、在自动发现规则的preproccessing中,添加步骤,Name选择 Prometheus to JSON,parameters按照自己的需求使用promeQL匹配node_exporter中的监控项。例如我想获取所有磁盘设备的只读状态node_filesystem_readonly,我便填写node_filesystem_readonly{device=~".*"}
在这里插入图片描述3、在自动发现规则的LLD macros中添加以下映射:

{#FILESYSTEM}=$.labels['device'] #自动发现的值,这里是磁盘设备
{#HELP}=$['help']
{#METRIC}=$['name']

变量名称可以自己定义,只要与后续的步骤对应即可。
在这里插入图片描述
4、添加监控项原型。
类型还是Dependent item,key值是metric名称,参数传刚刚定义的第一个参数{#FILESYSTEM},所依赖的监控项还是node_exporter的http监控项1,具体如下:
在这里插入图片描述5、在监控项原型中的Preproccessing中添加步骤,名称为Prometheus pattern,参数为

node_filesystem_readonly{device="{#FILESYSTEM}"}

在这里插入图片描述
以上便是zabbix和Prometheus的添加步骤,要想正式使用,还需要再自己沉淀需要的监控项,并形成模板,成熟后应用于我们的项目中。

猜你喜欢

转载自blog.csdn.net/weixin_44723434/article/details/89339329
今日推荐