有一個通知隊列,若是超過了必定的值,就須要報警一下php
查詢接口能夠返回隊列的數量,格式是json,data後面的數量就是隊列的數量shell
{"code":0,"message":"成功","data":22}json
在zabbix客戶端編輯配置文件zabbix_agentd.confvim
vim /usr/local/zabbix-agent/zabbix_agentd.conf服務器
添加藍色部分app
LogFile=/tmp/zabbix_agentd.logide
###zabbix 服務端地址測試
Server=192.168.1.110spa
##agent服務監聽地址,也就是本機地址3d
#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服務器的後臺頁面
點擊配置->主機,點擊名稱下面的一臺主機(修改配置文件的那臺)
點擊監控項->建立監控項
輸入名稱,選擇類型,信息類型是數字,由於腳本執行返回的格式是數字
輸入應用集名稱
點擊更新
點擊觸發器->建立觸發器
輸入名稱
表達式: {host_1:inform_queue.min(1m)}>3
表示隊列最後1分鐘內超過3那麼觸發器表達式將會返回true
選擇嚴重性,點擊更新
點擊圖形->建立圖形
輸入名稱,選擇縱軸固定,可固定
添加監控項,點擊更新
點擊監測中->圖形
選擇主機,選擇圖形inform_queue
等待幾分鐘,就會有數據了。