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的添加步驟,要想正式使用,還需要再自己沉澱需要的監控項,並形成模板,成熟後應用於我們的項目中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章