引言

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

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

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

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

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

1.编写脚本扫描端口

vim check_port.py

#!/usr/bin/env python

import os

import json

portlist = []

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}"] = port

new_port_list.append(pdict)

port_dict["data"] = new_port_list

jsonStr = json.dumps(port_dict,sort_keys=True,indent=4)

#python3

#print(jsonStr)

#python2

print jsonStr

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

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

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

UnsafeUserParameters=1

UserParameter=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 python

import json

port_list = ["80",

"10050",

"3306",

"22",

"8080"]

new_port = []

port_dict = {"data":None}

for port in port_list:

pdict = {}

pdict["{#TCP_PORT}"] = port

new_port.append(pdict)

port_dict["data"] = new_port

jsonStr = json.dumps(port_dict,sort_keys=True,indent=4)

#python3

#print(jsonStr)

#python2

print jsonStr

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

总结

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

pyzabbix 删除触发器_Zabbix实现批量监控端口状态的方法相关推荐

  1. pyzabbix 删除触发器_zabbix设置邮件报警, Zabbix常用Key值, zabbix触发器表达式详解, zabbix制作自己模板...

    zabbix设置邮件报警 方法一:说明此方法,会产生中文乱码问题 第一步:首先安装mailx组件并配置好能够通过三方邮箱发送邮件 yum -y install mailx 然后编辑mailx的配置文件 ...

  2. shell批量监控网站状态码

    shell批量监控网站状态码脚本,使用curl很慢.等我学完其他方式,在来更新. #!/bin/bash #GuoYabin yuming=`/bin/cat yuming.txt` for i in ...

  3. 查看华为交换机端口状态的方法以及命令

    华为交换机怎么打开端口? 登录进交换机,进入系统视图,命令为:system-view.2.进入以太网端口视图,命令格式: interface interface-type interface-numb ...

  4. linux批量检查端口脚本,telnet批量检测端口状态(linux)

    批量检测端口通信: 准备文件树状图 telnet.sh 脚本内容如下: 文件说明 telnet_alive.txt  : 活动的端口 telnet_die.txt    :  离线的端口 telnet ...

  5. zabbix自动发现实现批量监控docker状态

    最近在搞zabbix监控docker以及docker内部应用状态信息,网上找的资料好少,只找到了一个大神的一篇文章,用的是python实现监控docker容器的基本状态,我在他给的脚本基础上进行修改, ...

  6. java监控端口_zabbix监控Java 8080端口

    linux下端口和服务是对应的,Java进程启动时默认监听8080端口,如果服务挂掉则8080端口就没有了. lsof -i:8080 端口,如果没有任何的输出,说明该端口不在工作. 想在zabbix ...

  7. Zabbix监控端口

    使用zabbix自带key监控进程与端口 每个公司都有自己的程序,自己的进程名与端口监听,对于nagios来说,这些都经常需要自己去写插件,但是zabbix不需要,它自己就有监控进程与端口的key. ...

  8. 华为交换机:批量配置端口——端口组

    详解华为交换机中的批量处理端口的配置(思科中叫端口组配置),即快速配置具有相同配置的接口. 1.创建端口组名称 port-group name #命令用来创建Port Group名称. undo po ...

  9. mysql创建删除触发器的时候_mysql触发器简介及如何创建和删除触发器

    什么是mysql触发器 需要MySQL 5 对触发器的支持是在MySQL 5中增加的.因此,本章内容适用于MySQL 5或之后的版本. MySQL语句在需要时被执行,存储过程也是如此.但是,如果你想要 ...

  10. MySql命令行创建和删除触发器

    创建和删除mysql触发器 举例如下: 现有表tab1和tab2 要求触发器具有下面功能 当对tab1插入一条记录时则tab2也插入相同的记录 1 2 3 4 5 6 7 8 mysql>del ...

最新文章

  1. mysql语句优化百条_优化mysql语句
  2. 【常用工具】常用工具收集
  3. 【Atcoder】ARC083 D - Restoring Road Network
  4. linux kernel defconfig和.config
  5. 如何成为一个技术“牛人”
  6. java 蓝桥杯 算法训练 区间k大数查询(题解)
  7. SEO:搜索引擎优化的35个技巧
  8. jpg转bmp c语言 linux,C++_C语言实现BMP转换JPG的方法,本文实例讲述了C语言实现BMP转 - phpStudy...
  9. 如何计算页面的浏览率
  10. 内外网隔离--网络准入控制系统有什么功能
  11. Image类--旋转和翻转图片
  12. 敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)
  13. ADB logcat 过滤方法
  14. 闭关修炼(八)反射机制
  15. 一分钟开发一套美容店在线预约小程序
  16. PMI-ACP练习题(9)
  17. ATF快速扫盲(Quick Start)
  18. 你也可以成为VTuber
  19. mysql查询表的字段、字段类型、字段名称
  20. 北京中信银行面试总结

热门文章

  1. Julia:从交易流水动态计算可用资金
  2. Kafka从上手到实践-Kafka集群:重要配置和性能探讨 | 凌云时刻
  3. Kafka从上手到实践 - 初步认知:MQ系统 | 凌云时刻
  4. 1篇文章认识ZCCT在线认证,加入千人在线学习大军领取云计算资料包!
  5. 【细胞分割】基于matlab GUI生物细胞计数【含Matlab源码 758期】
  6. 【语音增强】基于matlab匹配滤波器语音识别【含Matlab源码 514期】
  7. SPSS简介【SPSS 004期】
  8. 计算机思维与计算文化,计算文化与计算思维基础
  9. 在Covid-19期间测量社交距离
  10. mnist 转图像_解决MNIST图像分类问题