版权声明:QQ:1009002494 https://blog.csdn.net/Doudou_Mylove/article/details/84327065
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”,说明每个端口都在监听状态,到此端口监控配置完毕。
反之如果进程挂掉端口监控就会报警,面板和微信都可以收到。