zabbix 添加自動發現端口並監控


最近在部署zabbix監控  有些服務器上開啟的服務端口非常多  如果一個個添加監控會很繁瑣,於是想到了自動發現規則  自動發現服務器上的服務端口並進行監控。

在zabbix客戶端服務器上進行操作

1)編寫端口自動發現的腳本

  

cat /usr/local/zabbix/scripts/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"

chmod +x discovertcpport.sh ##增加執行權限

2)配置zabbix客戶端的配置文件

在最后添加

tail -5 /usr/local/zabbix/etc/zabbix_agentd.conf

##自動發現端口並監控
UserParameter=tcpportlisten,/bin/bash /usr/local/zabbix/scripts/discover_port.sh "$1"

3)重啟zabbix_agent服務

 

/etc/init.d/zabbix_agentd restart

4)在zabbix客戶端進行腳本測試

sh /usr/local/zabbix/scripts/discover_port.sh
{
"data":[
{"{#TCP_PORT}":"10050"},
{"{#TCP_PORT}":"10509"},
{"{#TCP_PORT}":"111"},
{"{#TCP_PORT}":"12871"},
{"{#TCP_PORT}":"228"},
{"{#TCP_PORT}":"25"},
{"{#TCP_PORT}":"3001"},
{"{#TCP_PORT}":"32555"},
{"{#TCP_PORT}":"38312"},
{"{#TCP_PORT}":"8001"},
{"{#TCP_PORT}":"8002"},
{"{#TCP_PORT}":"8003"},
{"{#TCP_PORT}":"8004"},
{"{#TCP_PORT}":"8005"},
{"{#TCP_PORT}":"9000"}
]
}

5)在zabbix服務端進行測試

/usr/local/zabbix/bin/zabbix_get -s 10.128.10.93 -k tcpportlisten
{
"data":[
{"{#TCP_PORT}":"10050"},
{"{#TCP_PORT}":"10509"},
{"{#TCP_PORT}":"111"},
{"{#TCP_PORT}":"12871"},
{"{#TCP_PORT}":"228"},
{"{#TCP_PORT}":"25"},
{"{#TCP_PORT}":"3001"},
{"{#TCP_PORT}":"32555"},
{"{#TCP_PORT}":"38312"},
{"{#TCP_PORT}":"8001"},
{"{#TCP_PORT}":"8002"},
{"{#TCP_PORT}":"8003"},
{"{#TCP_PORT}":"8004"},
{"{#TCP_PORT}":"8005"},
{"{#TCP_PORT}":"9000"}
]
}

測試通過后再zabbixweb頁面上進行配置

創建自動發現規則

 

 創建監控項原型

 

 創建 觸發器原型

 

 6)查看是否成功

在配置---主機----觸發器中進行查看  說明已經成功

 

問題總結

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM