阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Zabbix如何实现批量监控端口状态

254次阅读
没有评论

共计 2819 个字符,预计需要花费 8 分钟才能阅读完成。

引言

在监控生产环境的服务的时候,通常需要对多个端口进行监控,如果我们手动一个一个的添加,这将是一件很麻烦的事情,为了减少这样的情况,我们采用批量添加监控端口的方法,这是非常常见的需求,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

Zabbix 如何实现批量监控端口状态

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

第二:页面配置

1. 添加模板

Zabbix 如何实现批量监控端口状态

 

2. 添加自动发现规则

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

Zabbix 如何实现批量监控端口状态

Zabbix 如何实现批量监控端口状态

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

3. 创建监控项原型

Zabbix 如何实现批量监控端口状态

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

4. 创建触发器类型

Zabbix 如何实现批量监控端口状态

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

Zabbix 如何实现批量监控端口状态

注意这里的表态示 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 相关教程集合

在 Ubuntu 16.04 服务器上安装 Zabbix 3.2  http://www.linuxidc.com/Linux/2017-07/145519.htm

CentOS 7 LNMP 环境搭建 Zabbix3.0  http://www.linuxidc.com/Linux/2017-02/140134.htm

Ubuntu 16.04 安装部署监控系统 Zabbix2.4  http://www.linuxidc.com/Linux/2017-03/141436.htm

Zabbix 监控安装部署及警报配置  http://www.linuxidc.com/Linux/2017-03/141611.htm

Zabbix 触发器表达式详解 http://www.linuxidc.com/Linux/2017-03/141921.htm

Ubuntu 16.04 下安装部署 Zabbix3.0  http://www.linuxidc.com/Linux/2017-02/140395.htm

CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm

CentOS 7 下 Zabbix 3.0 安装详解 http://www.linuxidc.com/Linux/2017-03/141716.htm

64 位 CentOS 6.2 下安装 Zabbix 2.0.6  http://www.linuxidc.com/Linux/2014-11/109541.htm

Zabbix 3.2.6 通过 Orabbix 监控 Oracle 数据库  http://www.linuxidc.com/Linux/2017-10/147224.htm

ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-01/150495.htm 

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2819字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中