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

 更新时间:2018年01月23日 09:49:16   作者:JeremyWYL  
在监控生产环境的服务的时候,通常需要对多个端口进行监控,如果我们手动一个一个的添加,这将是一件很麻烦的事情,为了减少这样的情况,我们采用批量添加监控端口的方法,下面小编给大家带来了zabbix批量监控端口状态的方法,一起看看吧
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

引言

  在监控生产环境的服务的时候,通常需要对多个端口进行监控,如果我们手动一个一个的添加,这将是一件很麻烦的事情,为了减少这样的情况,我们采用批量添加监控端口的方法,这是非常常见的需求,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实现批量监控端口状态的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对程序员之家网站的支持!

相关文章

  • Zabbix如何通过ssh监控获取网络设备数据

    Zabbix如何通过ssh监控获取网络设备数据

    这篇文章主要介绍了Zabbix如何通过ssh监控获取网络设备数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • zabbix自定义邮箱报警和微信报警

    zabbix自定义邮箱报警和微信报警

    这篇文章主要介绍了zabbix自定义邮箱报警和微信报警,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定需要的朋友可以参考下
    2007-09-09
  • 使用Zabbix?5.4.3监控IPMI的方法

    使用Zabbix?5.4.3监控IPMI的方法

    默认情况下,Zabbix服务器未配置为启动任何IPMI轮询,因此任何添加的IPMI监控项将无法正常工作,接下来通过本文给大家介绍使用Zabbix?5.4.3监控IPMI的方法,感兴趣的朋友一起看看吧
    2022-01-01
  • zabbix执行远程主机的脚本或指令详解

    zabbix执行远程主机的脚本或指令详解

    这篇文章主要介绍了在zabbix执行远程主机的脚本或指令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • zabbix利用python脚本发送报警邮件的方法

    zabbix利用python脚本发送报警邮件的方法

    这篇文章是是用外部脚本python实现zabbix的报警机制的。对于zabbix3.0此处存在一个小改动,忙活了一天才找到原因哒。下面就来看看详细的介绍吧,有需要的朋友们可以参考借鉴。
    2016-12-12
  • Zabbix SAML SSO 登录绕过漏洞的操作流程

    Zabbix SAML SSO 登录绕过漏洞的操作流程

    这篇文章主要介绍了Zabbix SAML SSO 登录绕过漏洞的操作方法,该漏洞源于在启用?saml?SSO 身份验证(非默认)的情况下,未身份验证的攻击者可以修改会话数据,成功绕过前台进入后台,因为存储在会话中的用户登录未经过验证,具体实现流程跟随小编一起看看吧
    2022-03-03
  • centos7.9安装zabbix5.0.14及配置过程

    centos7.9安装zabbix5.0.14及配置过程

    这篇文章主要介绍了centos7.9安装zabbix5.0.14的详细过程,本文给大家介绍了基础环境配置方法及安装zabbix相关组件的过程讲解,需要的朋友可以参考下
    2021-08-08
  • 基于docker安装zabbix的详细教程

    基于docker安装zabbix的详细教程

    这篇文章主要介绍了基于docker安装zabbix,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 快速通过zabbix获取数据库连接的信息及部分扩展

    快速通过zabbix获取数据库连接的信息及部分扩展

    这篇文章主要介绍了通过zabbix获取数据库连接的信息及部分扩展,包括zabbix配置信息,功能脚本,本文给大家分享详细脚本写法,需要的朋友可以参考下
    2021-06-06
  • zabbix redis自动发现端口的脚本返回json格式

    zabbix redis自动发现端口的脚本返回json格式

    zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。这篇文章主要介绍了zabbix redis自动发现端口的脚本,返回json格式,需要的朋友可以参考下
    2019-11-11

最新评论


http://www.vxiaotou.com