方案
#采用精确过滤指定机器需要监听的端口,去掉多余繁杂的端口
第一步:在zabbix目录下创建自定义监控脚本,将需要监听的端口写入配置文件中
#将需要监控的端口写入到这个配置文件中
cat port.conf
22
80
443
3306
10050
#10051
cat tcp_port.sh
#此脚本是将之前定义的端口数据进行json格式化处理,如图所示
#/bin/bash
CONFIG_FILE=/etc/zabbix/sh/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
第二步:写入agent配置文件中,重启服务
第三步:配置zabbix自动发现
实现不通服务器监听不同的端口,配置好后自动将这些端口纳入监控项