1. 程式人生 > >Zabbix埠監控

Zabbix埠監控

zabbix-agent端操作

mkdir /etc/zabbix/script

cd /etc/zabbix/script

more port_alert.sh

#/bin/bash
CONFIG_FILE=/etc/zabbix/script/port.conf
Check(){
    grep -vE '(^ *#|^$)' ${CONFIG_FILE} | grep -vE '^ *[0-9]+' &> /dev/null
    if [ $? -eq 0 ]
    then
        echo Error: ${CONFIG_FILE} Contains Invalid Port.
        exit 1
    else
        portarray=($(grep -vE '(^ *#|^$)' ${CONFIG_FILE} | grep -E '^ *[0-9]+'))
    fi
}
PortDiscovery(){
    length=${#portarray[@]}
    printf "{\n"
    printf  '\t'"\"data\":["
    for ((i=0;i<$length;i++))
      do
         printf '\n\t\t{'
         printf "\"{#TCP_PORT}\":\"${portarray[$i]}\"}"
         if [ $i -lt $[$length-1] ];then
                    printf ','
         fi
      done
    printf  "\n\t]\n"
    printf "}\n"
}
port(){
    Check
    PortDiscovery
}
port

我們只測試監控9099和7077埠

more port.conf

9099
7077

注意兩個指令碼屬主為zabbix:zabbix。

chown zabbix.zabbbix port.conf port_alert.sh

 

修改被監控端的zabbix_agent.conf配置檔案,新增KEY值port.alert

viw /etc/zabbix/zabbix_agentd.conf

UserParameter=port.alert,/etc/zabbix/script/port_alert.sh

 

重啟zabbix-agent

systemctl restart zabbix-agent

 

#zabbix-server端測試

zabbix_get -s 10.7.12.23  -k port.alert

測試成功,返回json格式的合法埠號

 

web端配置

新建模板,建立自動發現規則

新建自動發現規則:

鍵值必須和zabbix-agentd.conf編寫的key一致

自動發現清單中新建監控項原型:

下面鍵值選擇net.tcp.listen[port]稍作修改

自動發現清單中新建觸發器:

觸發器表示式專案要“選擇原型”

模板關聯主機:

檢視最新資料:

上面看到兩個埠最新資料都為“1”,說明每個埠都在監聽狀態,到此埠監控配置完畢。

 

反之如果程序掛掉埠監控就會報警,面板和微信都可以收到。