zabbix3.2监控自动发现服务端口
环境:
操作系统:Centos6.5
lamp平台:apache 2.4+php 5.6+mysql 5.6
zabbix版本:zabbix3.2
zabbix客户端
创建端口侦听脚本
vim /etc/zabbix/zabbix_agentd.d/discovertcpport.sh #!/bin/bash portarray=(`netstat -tnlp|egrep -i"$1"|awk {‘print $4‘}|awk -F‘:‘ ‘{if ($NF~/^[0-9]*$/) print$NF}‘|sort|uniq`) #namearray=(`netstat -tnlp|egrep -i"$1"|awk {‘print $7‘}|awk -F‘/‘ ‘{if ($NF != "Address")print $NF}‘|uniq`) length=${#portarray[@]} printf "{\n" printf ‘\t‘"\"data\":[" for ((i=0;i<$length;i++)) do printf‘\n\t\t{‘ printf"\"{#TCP_PORT}\":\"${portarray[$i]}\"}" # printf"\"{#TCP_NAME}\":\"${namearray[$i]}\"}" if [ $i-lt $[$length-1] ];then printf ‘,‘ fi done printf "\n\t]\n" printf "}\n"
脚本说明:
使用netstat命令输入端口号;-tnlp=Tcp协议+不显示别名+listen状态+显示程序名称;$1~$9表示输出的第几个参数;awk{‘print $4’}表示输出第4个参数(如0.0.0.0:80);awk –F’:’‘{if ($NF~/^[0-9]*$/) print $NF}’表示截取冒号后面的值,且只能是0~9的数字;|sort|unip表示排序和去重。
脚本中注释掉的俩行是用来监控服务的,只需替换掉齐shang的一行就是个烧苗服务的脚本了。
客户端增加discovery的key值
vim /etc/zabbix/zabbix_agentd.conf UnsafeUserParameters=1 UserParameter=tcpportlisten,/etc/zabbix/zabbix_agentd.d/discovertcpport.sh"$1"
给脚本加权限
chmod +x discovertcpport.sh
重启客户端服务
/etc/init.d/zabbix_agentd restart
Zabbix-server端使用get获取数据
/usr/local/zabbix/bin/zabbix_get -s127.0.0.1 -p 10050 -k tcpportlisten
报错处理:
网页报错
更改netstat命令权限
chmod 4755 /bin/netstat
重启服务
/etc/init.d/zabbix_agentd restart
zabbix-server
重新获取值
/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p10050 -k tcpportlisten
刷新网页
已经没有错误提示了
已经没有报错消息了 ! ! !
Zabbix-server网站配置
配置—模板—Template OS Linux—自动发现
设置自动发现规则名称和KEY 自动发现规则—创建发现规则
监控项原型—名称(Tcp Port $1)--键值(net.tcp.listen[{#TCP_PORT}])--数据类型(布尔)
选择好键值net.tcp.listen[port] 大括号中的值可以手动更改
触发器类型—创建触发器
名称—严重性—表达式
表达式—选择类型—功能—排班—N—插入
触发器添加成功等几分钟查看
监控项筛选
本文出自 “12780274” 博客,转载请与作者联系!
原文地址:http://12790274.blog.51cto.com/12780274/1982063