一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

zabbix利用discovery批量添加端口监控

时间:2016-07-23 编辑:简简单单 来源:一聚教程网

首先是写脚本,输出当前windows机器监听的tcp端口

check_port.py

#!/usr/bin/python
__author__ = 'Yan'
import os
import json

data = {}
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_list
jsonStr = 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.conf

UnsafeUserParameters=1
UserParameter=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

在模版或者主机的页面上点击Discovery(探索),然后在右上角点击Create discovery rule(创建探索规则)

 



然后在这个新建的tcp port discover里面建立一个Item

最后创建报警的trigger

注意这个地方的表达式

{xxxxx:net.tcp.listen[{#TCP_PORT}].count(#3,0,eq)}>1
如果你是在单个机器上添加的,这里xxxxx就应该是某个机器的具体名称,如果是模版,这里就是模版的名称

.count(#3,0,eq)}>1
表示最后三次的值等于0,触发次数大于一次则报警

如果你是在主机上添加的,这个时候就能看到监控项里面多了好多端口,如果是模版添加的,则需要把模版关联到响应的主机上才能看到有监控的端口。

如下监控的端口


端口的阀值

热门栏目