有一個通知隊列,如果超過了一定的值,就需要報警一下
查詢接口可以返回隊列的數量,格式是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服務器的後臺頁面
點擊配置->主機,點擊名稱下面的一臺主機(修改配置文件的那臺)
點擊監控項->創建監控項
輸入名稱,選擇類型,信息類型是數字,因爲腳本執行返回的格式是數字
輸入應用集名稱
點擊更新
點擊觸發器->創建觸發器
輸入名稱
表達式: {host_1:inform_queue.min(1m)}>3
表示隊列最後1分鐘內超過3那麼觸發器表達式將會返回true
選擇嚴重性,點擊更新
點擊圖形->創建圖形
輸入名稱,選擇縱軸固定,可固定
添加監控項,點擊更新
點擊監測中->圖形
選擇主機,選擇圖形inform_queue
等待幾分鐘,就會有數據了。