zabbix 3.0.2自定義腳本

有一個通知隊列,若是超過了必定的值,就須要報警一下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服務器的後臺頁面

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


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

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

輸入應用集名稱

點擊更新

wKiom1coYD2hh1KAAABT2NgQK1g528.png


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

輸入名稱

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

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

選擇嚴重性,點擊更新

wKiom1coZOeCJUayAAA56NJiOt8491.png


點擊圖形->建立圖形

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

添加監控項,點擊更新

wKioL1coYoGSQ5sfAABJ85RQoIs025.png



點擊監測中->圖形

選擇主機,選擇圖形inform_queue

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

wKiom1coYinjKmZFAABcHuAIpbU000.png

相關文章
相關標籤/搜索