zabbix自定義指令碼監控伺服器埠狀態
阿新 • • 發佈:2020-10-22
zabbix可以通過客戶端的[net.tcp.port[<ip>,port]]
該item監控項來判斷本地/遠端伺服器TCP埠是否正常,不過當時沒有想起來,就用了自定義指令碼去寫的,很久沒有寫完全忘了,以下是步驟:
1.在客戶端開啟子配置檔案選項,預設是已經開啟的
Include=/etc/zabbix/zabbix_agentd.d/*.conf
2.開始編寫指令碼,大致就是通過shell指令碼引數傳入ip地址和port,通過namp
命令去獲取埠狀態
ip=$1 port=$2 port_status=`nmap $1 -p$2 | grep $2 | awk '{print $2}'` echo $port_status
最後其實就是通過echo得到一個字元,然後在zabbix中進行判斷
3.指定使用者自定義引數,就是剛剛我們說的子配置檔案選項
cd /etc/zabbix/zabbix_agentd.d/
vim check_port_status.sh
UserParameter=port_status[*],/etc/zabbix/check_scripts/port_status.sh $1 $2
這裡寫的目的就是當我們在web介面填寫item時,zabbix如果不知道的話就會過來找這些自定義引數port_status
4.在web端新增模板
5.建立應用集
6.新增監控項
鍵值的話,需要傳遞兩個,用,
分割,其中port_status
7.應用模板
8.配置觸發器報警
這裡的監控項就選剛剛新增的,功能函式選擇str()
,因為我們指令碼中echo
輸出的是字串,V表示最新的值open
或者closed
(還有其他幾種情況),那麼這句表示式的意思為:最新的值中沒有找到open就會報警
9.完成