zabbix利用discovery批量添加端口监控
转载:http://www.linuxyan.com/cacti-nagios/396.html
转载:http://www.linuxyan.com/cacti-nagios/396.html
公司有几台机器是很老以前的,而且是windows的机器,最近在完善监控,需要监控windows机器上的监听的tcp端口,但是每台机器上都有好几十个端口,手动加的话,要疯了,于是想用zabbix的discover功能来自动添加监控,测试了下,感觉很高大上有木有。不说废话,来看操作了。
首先是写脚本,输出当前windows机器监听的tcp端口因为我这里是windows的机器,我用的python脚本,所以还需要安装python环境,我这里安装的2.7.6版本的python
check_port.py
#!/usr/bin/python__author__ = 'Yan'import osimport jsondata = {}tcp_list = []port_list = []command = 'netstat -ano -p tcp| find "LISTENING" 'lines = os.popen(command).readlines()for line in lines: port = line.split()[1].split(':')[1] port_list.append(port)for port in list(set(port_list)): port_dict = {} port_dict['{#TCP_PORT}'] = port tcp_list.append(port_dict)data['data'] = tcp_listjsonStr = json.dumps(data, sort_keys=True, indent=4)print jsonStr这个脚本当前只能用在windows下面,linux需要用的话,大家可以自己写,只要脚本的结果输出如下格式就行了。这个脚本运行的结果如下:
{ "data": [ { "{#TCP_PORT}": "1025" }, { "{#TCP_PORT}": "25" }, { "{#TCP_PORT}": "1028" } ]}修改win下zabbix_agent的配置文件zabbix_agentd.win.confUnsafeUserParameters=1UserParameter=tcpportlisten,python C:\zabbix-2.2.2_agent\check_port.py修改完成后重启zabbix_agent服务。
这个时候在zabbix_server端就可以用zabbix_get来测试是否正常。
zabbix_get -s ip -k tcpportlisten
返回的结果和在agent上运行脚本返回的结果一致就表示正常。
在页面添加discover这个时候在zabbix_server端就可以用zabbix_get来测试是否正常。
zabbix_get -s ip -k tcpportlisten
返回的结果和在agent上运行脚本返回的结果一致就表示正常。
在模版或者主机的页面上点击Discovery(探索),然后在右上角点击Create discovery rule(创建探索规则)
http://linuxyan.qiniudn.com/0813_discovery.png
然后在这个新建的tcp port discover里面建立一个Item
http://linuxyan.qiniudn.com/0813_item.png
http://linuxyan.qiniudn.com/0813_discovery.png
然后在这个新建的tcp port discover里面建立一个Item
http://linuxyan.qiniudn.com/0813_item.png
最后创建报警的trigger
http://linuxyan.qiniudn.com/0813_asaa.png
http://linuxyan.qiniudn.com/0813_asaa.png
注意这个地方的表达式
{xxxxx:net.tcp.listen[{#TCP_PORT}].count(#3,0,eq)}>1如果你是在单个机器上添加的,这里xxxxx就应该是某个机器的具体名称,如果是模版,这里就是模版的名称
.count(#3,0,eq)}>1表示最后三次的值等于0,触发次数大于一次则报警
如果你是在主机上添加的,这个时候就能看到监控项里面多了好多端口,如果是模版添加的,则需要把模版关联到响应的主机上才能看到有监控的端口。
如果你是在主机上添加的,这个时候就能看到监控项里面多了好多端口,如果是模版添加的,则需要把模版关联到响应的主机上才能看到有监控的端口。
如下监控的端口
http://linuxyan.qiniudn.com/0813_port.png
端口的阀值
http://linuxyan.qiniudn.com/0813_trigger.png
http://linuxyan.qiniudn.com/0813_port.png
端口的阀值
http://linuxyan.qiniudn.com/0813_trigger.png
编辑回复