千家信息网

Zabbix实现批量监控端口状态的方法

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,引言在监控生产环境的服务的时候,通常需要对多个端口进行监控,如果我们手动一个一个的添加,这将是一件很麻烦的事情,为了减少这样的情况,我们采用批量添加监控端口的方法,这是非常常见的需求,zabbix也是
千家信息网最后更新 2026年11月02日Zabbix实现批量监控端口状态的方法

引言

  在监控生产环境的服务的时候,通常需要对多个端口进行监控,如果我们手动一个一个的添加,这将是一件很麻烦的事情,为了减少这样的情况,我们采用批量添加监控端口的方法,这是非常常见的需求,zabbix也是支持这种方式的,需要使用zabbix的Discovery功能来实现,下面小编就给大家分享一下批量添加端口的占用。

  使用Zabbix监控如何监控服务器端口状态,大概的流程:zabbix监控服务自带端口监控的监控项,所以需要我们自己手动定义所监控的item,客户端获取的端口列表通过agent传送到服务端,

只需在服务端进行端口监控模板配置,然后自定义监控图形,添加监控项即可!

   下面就来给大家分享一下批量添加端口的方法!

第一:自动扫描端口并监控报警

1.编写脚本扫描端口

vim check_port.py#!/usr/bin/env pythonimport osimport jsonportlist = []new_port_list = []port_dict = {"data":None}cmd = '''netstat -tnlp|egrep -i "$1"|awk {'print $4'}|'''cmd += '''awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort -n| uniq 2>/dev/null'''auto_localport = os.popen(cmd).readlines()for ports in auto_localport:new_port = ports.strip()portlist.append(new_port)for port in portlist:pdict = {}pdict["{#TCP_PORT}"] = portnew_port_list.append(pdict)port_dict["data"] = new_port_listjsonStr = json.dumps(port_dict,sort_keys=True,indent=4)#python3#print(jsonStr)#python2print jsonStr

脚本的作用就是从被监控的服务器上面采集数据,并且转换为特定的字典格式,这种格式是zabbix可以识别的一种数据字典格式,使用python来编写相对shell来说更加便捷。

将脚本放在客户端 /usr/lib/zabbix/alertscripts 路径下面

2.修改被监控端的zabbix_agent.conf配置文件

UnsafeUserParameters=1UserParameter=tcpportlisten,/usr/lib/zabbix/alertscripts/check_port.sh

重启客户端服务

3.服务端测试

执行命令:zabbix_get -s 192.168.92.9 -p 10050 -k tcpportlisten

出现上面格式的数据,说明脚本编写成功!!!

第二:页面配置

1.添加模板

2.添加自动发现规则

在上新创建的模板中点击-->自动发现规则-->然后选择创建发现规则

说明:上面的key 一定要和配置文件中的key 保持一致。就是我们在zabbix_agent.conf文件中添加的两行代码中的第二行中添加的参数key

3.创建监控项原型

上面中的键值 中的 #TCP_PORT} 和我们的脚本 check_port.sh 中的参数一致

4.创建触发器类型

添加按钮进入-->选择原型

注意这里的表态示count(#3,0,eq) > 1表示最近3次的返回值为0,这个条件触发一次则报警.

配置到这我们就完成了,zabbix自动扫描并监控的功能.

第三:批量添加指定端口

有时候我们不需要监控自动扫描出来的所有的端口,这些端口需要我们指定,这个需求也是比较常见的,有了上面的基础,实现这个东西其实是比较简单,其实仔细看看脚本就能实现。

要实现这个功能我们只需要,将脚本替换成下面内容即可:

#!/usr/bin/env pythonimport jsonport_list = ["80",     "10050",     "3306",     "22",     "8080"]new_port = []port_dict = {"data":None}for port in port_list:pdict = {}pdict["{#TCP_PORT}"] = portnew_port.append(pdict)port_dict["data"] = new_portjsonStr = json.dumps(port_dict,sort_keys=True,indent=4)#python3#print(jsonStr)#python2print jsonStr

我们只需要在port_list中添加想要监控的端口号即可!注意格式,以逗号隔开!

总结

以上所述是小编给大家介绍的Zabbix实现批量监控端口状态的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

监控 端口 服务 脚本 格式 配置 方法 功能 客户 客户端 文件 模板 规则 状态 一致 原型 参数 字典 手动 数据 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 互联网科技工作委员会副主任毛军 云信互联网科技有限公司 互联网品科技 腾讯阿里互联网科技 中资互联网科技 互联网科技小贷 美国互联网前沿科技 无锡溥仪互联网科技有限公司 互联网和高科技公司 青岛中康互联网医疗科技有限公司 互联网科技商业 互联网科技产业特征 晋城互联网科技 高科技互联网发展前景如何 元气玛特互联网科技公司是外包吗 信承诺互联网科技有限公司 三亚科技创新互联网基地 互联网的黑科技实验室 科技互联网企业在行动 互联网科技有限公司 厦门中拓互联网络科技有限公司 金诺互联网科技 互联网科技有限公司 翻译 岳阳华臻互联网科技有限公司 深圳市优智互联网科技有限公司 如何创新互联网科技 互联网时代科技型公司的机会 互联网的黑科技实验室 科技互联网企业在行动
0