1. 程式人生 > >zabbix 自動發現監控端口(六)

zabbix 自動發現監控端口(六)

zabbix

一、配置腳本,將腳本分發到各個minion端

1.1.腳本內容

vim discover_port.sh 

#!/bin/bash
portarray=(`sudo netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)
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"

1.2.本地測試腳本

# /bin/bash /usr/local/zabbix-agent/script/discover_port.sh
{
        "data":[
                {"{#TCP_PORT}":"10050"},
                {"{#TCP_PORT}":"22"},
                {"{#TCP_PORT}":"25"},
                {"{#TCP_PORT}":"443"},
                {"{#TCP_PORT}":"80"},
                {"{#TCP_PORT}":"9008"},
                {"{#TCP_PORT}":"9012"},
                {"{#TCP_PORT}":"9083"},
                {"{#TCP_PORT}":"9085"},
                {"{#TCP_PORT}":"9088"},
                {"{#TCP_PORT}":"9089"}
        ]
}

二、修改zabbix客戶端配置文件,增加參數

2.1.修改配置文件,增加參數

# vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf
#增加如下
UserParameter=tcpportlisten,/bin/bash /usr/local/zabbix-agent/script/discover_port.sh "$1"

2.2.重啟zabbix客戶端

# /etc/init.d/zabbix_agentd restart                 
Shutting down zabbix_agentd:                               [  OK  ]
Starting zabbix_agentd:                                    [  OK  ]

三、服務端測試連通

3.1.測試通信

#  /usr/local/zabbix/bin/zabbix_get -s 10.27.182.76 -k tcpportlisten            
{
        "data":[
                {"{#TCP_PORT}":"10050"},
                {"{#TCP_PORT}":"22"},
                {"{#TCP_PORT}":"25"},
                {"{#TCP_PORT}":"443"},
                {"{#TCP_PORT}":"80"},
                {"{#TCP_PORT}":"9008"},
                {"{#TCP_PORT}":"9012"},
                {"{#TCP_PORT}":"9083"},
                {"{#TCP_PORT}":"9085"},
                {"{#TCP_PORT}":"9088"},
                {"{#TCP_PORT}":"9089"}
        ]
}

四、添加自動發現規則

4.1.創建發現規則

技術分享圖片

4.2.配置發現規則名稱

技術分享圖片


4.3.配置檢測規則

技術分享圖片



4.4.配置觸發器

技術分享圖片


五、錯誤處理

5.1.服務器測試與客戶端通信時:

zabbix sudo: no tty present and no askpass program specified

解決:

zabbix客戶端修改zabbix_agentd.conf:

AllowRoot=1

重啟客戶端:

# /etc/init.d/zabbix_agentd restart

腳本添加權限及修改屬主:

# chown zabbix. discover_port.sh
# chmod +x discover_port.sh

5.2.測試通信報錯2:

zabbix sudo: sorry, you must have a tty to run sudo

解決:

vi /etc/sudoers (最好用visudo命令)
註釋掉 Default requiretty 一行
#Default requiretty


zabbix 自動發現監控端口(六)