zabbix 3.0.2自定義腳本

有一個通知隊列,如果超過了一定的值,就需要報警一下

查詢接口可以返回隊列的數量,格式是json,data後面的數量就是隊列的數量

{"code":0,"message":"成功","data":22}


在zabbix客戶端編輯配置文件zabbix_agentd.conf

vim /usr/local/zabbix-agent/zabbix_agentd.conf

添加藍色部分


LogFile=/tmp/zabbix_agentd.log

###zabbix 服務端地址

Server=192.168.1.110

##agent服務監聽地址,也就是本機地址

#ListenIP=192.168.1.105

ServerActive=192.168.1.110

##zabbix-server端主機地址(zabbix server)

Hostname=zabbix server

#允許所有字符的參數傳遞給用戶定義的參數

UnsafeUserParameters=1

#用戶自定義key,格式: UserParameter=key名,執行命令

#例如:serParameter=system.test,who|wc -l

UserParameter=inform_queue,/usr/local/php/bin/php /usr/local/zabbix-agent/script/inform_queue.php


創建目錄script

mkdir script

直接用shell過濾不太好,用php是比較好的

vim inform_queue.php

代碼如下:

<?php

$str = file_get_contents('http://10.x.x.x/app/inform_queue');

$json=json_decode($str);

echo $json->data;

?>


測試執行php代碼就可以得到數字22


重啓zabbix客戶端

killall -9 zabbix_agentd

/usr/local/zabbix-agent/sbin/zabbix_agentd -c /usr/local/zabbix-agent/etc/zabbix_agentd.conf


進入zabbix服務器,使用zabbix_get

zabbix_get參數說明:

-s --host: 指定客戶端主機名或者IP

-p --port:客戶端端口,默認10050

-I --source-address:指定源IP,寫上zabbix server的ip地址即可,一般留空,服務器如果有多ip的時候,你指定一個。

-k --key:你想獲取的key


測試key值是否生效

/usr/local/zabbix/bin/zabbix_get -s 192.168.1.105 -p10050 -k inform_queue

有數字返回說明就可以了。


進入zabbix服務器的後臺頁面

點擊配置->主機,點擊名稱下面的一臺主機(修改配置文件的那臺)


點擊監控項->創建監控項

輸入名稱,選擇類型,信息類型是數字,因爲腳本執行返回的格式是數字

輸入應用集名稱

點擊更新

wKiom1coYD2hh1KAAABT2NgQK1g528.png


點擊觸發器->創建觸發器

輸入名稱

表達式: {host_1:inform_queue.min(1m)}>3

表示隊列最後1分鐘內超過3那麼觸發器表達式將會返回true

選擇嚴重性,點擊更新

wKiom1coZOeCJUayAAA56NJiOt8491.png


點擊圖形->創建圖形

輸入名稱,選擇縱軸固定,可固定

添加監控項,點擊更新

wKioL1coYoGSQ5sfAABJ85RQoIs025.png



點擊監測中->圖形

選擇主機,選擇圖形inform_queue

等待幾分鐘,就會有數據了。

wKiom1coYinjKmZFAABcHuAIpbU000.png






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