自动获取服务端口shell脚本:

#!/bin/bash
port_array=(`netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort |uniq   2>/dev/null`)
length=${#port_array[@]}
printf "{\n"
printf  '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
        printf '\n\t\t{'
        printf "\"{#TCP_PORT}\":\"${port_array[$i]}\"}"
        if [ $i -lt $[$length-1] ];then
                printf ','
        fi
done
printf  "\n\t]\n"
printf "}\n"

添加自定义key :


cat /etc/zabbix/zabbix_agentd.d/UserParameter.conf 

UserParameter=tcpportlisten,/etc/zabbix/bin/disc_port.sh "$1"

key测试:


zabbix 探索规则自带磁盘及网卡的,参照后整理探索端口并自动添加监控报警功能 :
shell脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
port_array=(`netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort |uniq   2>/dev/null`)
length=${#port_array[@]}
printf "{\n"
printf  '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
        printf '\n\t\t{'
        printf "\"{#TCP_PORT}\":\"${port_array[$i]}\"}"
        if [ $i -lt $[$length-1] ];then
                printf ','
        fi
done
printf  "\n\t]\n"
printf "}\n"



添加自定义key :
1
2
3
[iyunv@VM_128_113_centos zabbix]# cat /etc/zabbix/zabbix_agentd.d/UserParameter.conf 
UserParameter=tcpportlisten,/etc/zabbix/bin/disc_port.sh "$1"
[iyunv@VM_128_113_centos zabbix]#



key 测试:
 

 
出值后检验json格式:
在http://jsonlint.com/ 网站里输入格式内容检测

 

在探索里添加

 


 


 

然后在主机的items里可以看到已自动添加了端口的项目:

 

wKioL1VxOYiB5zPtAAF0qE4hguw649.jpg(44.26 KB, 下载次数: 0)

下载附件  保存到相册

2015-6-8 09:40 上传




然后就可以在探索里添加触发器/图形进行报警操作了

本文出自http://www.iyunv.com/thread-74909-1-1.html