[root@slave79101 zabbix_agentd.conf.d]# cat monitor\_remote\_port\_tracer.conf
UserParameter=s.remote.port.c[*],sh /usr/local/zabbix/share/zabbix/alertscripts/scan_remote_port2.sh $1
2. 编辑脚本
需要监控的IP和端口
[root@slave79101 zabbix_agentd.conf.d]# cat /usr/local/zabbix/share/zabbix/alertscripts/scan\_remote\_port.txt
192.168.79.103:8880
192.168.79.103:443
192.168.79.101:443
192.168.79.101:22212
192.168.79.101:5432
192.168.79.101:8080
监控脚本
[root@slave79101 zabbix_agentd.conf.d]# cat /usr/local/zabbix/share/zabbix/alertscripts/scan\_remote\_port2.sh
#!/bin/bash
echo > /tmp/scan_remote_port_info.txt
hostname=`uname -n`
count1=0
count2=0
for ipport in `cat /usr/local/zabbix/share/zabbix/alertscripts/scan\_remote\_port.txt`
do
ip=`echo $ipport | awk -F':' '{print $1}'`
port=`echo $ipport | awk -F':' '{print $2}'`
c=`nmap $ip -p $port | grep open |wc -l`
#echo $t
if [ "$c" == "1" ];
then
echo "本地服务器: $hostname 可以抵达服务器: $ip 的端口: $port" >> /tmp/scan_remote_port_info.txt
let count1+=1
else
echo "本地服务器: $hostname 不可抵达服务器: $ip 的端口: $port" >> /tmp/scan_remote_port_info.txt
let count2+=1
fi
done
case $1 in
count1)
echo $count1
;;
count2)
echo $count2
;;
get)
cat /tmp/scan_remote_port_info.txt
;;
*)
echo "please input {count1|count2|get}"
;;
esac
说明:
脚本说明:
count1:是统计可以抵达的网络
count2:是统计不可抵达的网络,当count2返回值大于等于1时触发报警。
get:是全部检测结果的概览
3. 测试
在zabbix服务端测试
[root@slave79103 ~]# zabbix\_get -s 192.168.79.101 -p 10050 -I 192.168.79.103 -k s.remote.port.c[get]
本地服务器: slave79101 可以抵达服务器: 192.168.79.103 的端口: 8880
本地服务器: slave79101 不可抵达服务器: 192.168.79.103 的端口: 443
本地服务器: slave79101 可以抵达服务器: 192.168.79.101 的端口: 443
本地服务器: slave79101 不可抵达服务器: 192.168.79.101 的端口: 22212
本地服务器: slave79101 可以抵达服务器: 192.168.79.101 的端口: 5432
本地服务器: slave79101 可以抵达服务器: 192.168.79.101 的端口: 8080
[root@slave79103 ~]# zabbix\_get -s 192.168.79.101 -p 10050 -I 192.168.79.103 -k s.remote.port.c[count1]
4
[root@slave79103 ~]# zabbix\_get -s 192.168.79.101 -p 10050 -I 192.168.79.103 -k s.remote.port.c[count2]
2
4. zabbix界面自定义监控
创建应用集在这里插入图片描述
创建监控项
创建告警
创建图表