目的:
通过批量实现自动发现端口,避免傻傻的一个一个添加
解决方案:
使用zabbix的discovery功能来实现监控。
注意:自动发现端口,需要在sysctl.conf中修改下系统自动打开端口的范围如果不修改,net.ipv4.ip_local_port_range = 10240 65535会导致自动发现的端口有系统自动打开的端口,导致频繁报警
1、安装zabbix,跳过
2、通过脚本实现:
cd /usr/local/zabbix/etc/zabbix_scripts.d/
vim discovertcpport.sh
注意:这里的netstat 后面不用加p参数,否则需要在agent配置文件中开启root权限
#!/bin/bash
portarray=(`netstat -tnl|grep -v -e "127.0.0.1" -e "::1:" |egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort -n |uniq | grep -E -v "[0-9]{5}"`)
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"
3、在zabbix_agentd.conf中添加相关的key
Include=/data/usr/local/zabbix/etc/zabbix_agentd.conf.d/*
UnsafeUserParameters=1
UserParameter=tcpportlisten,/usr/local/zabbix/etc/zabbix_script.d/discovertcpport.sh "$1"
或者:
在zabbix_agentd.conf.d目录下创建文件,zabbix_post.conf
UserParameter=tcpportlisten,/usr/local/zabbix/etc/zabbix_script.d/discovertcpport.sh "$1"
4、重启agent就可以实现了。
5、zabbix仪表板配置:
6、上图,不废话
7、上图,不废话
8、上图,不废话
注意:count(#5,0,”eq”)}>2意思是,最近5个值等于0的次数大于2
参考:http://www.jianshu.com/p/0c800a095e6c
9、上图,不废话
希望能帮上大家!温暖在此祝大家工作顺利!如果文档有不足的地方请及时联系我。QQ:345186121