zabbix 监控项自动发现过滤_通过Zabbix的自动发现(规则)自动创建监控项
下图是一个已配置并启用的自动发现规则:
应用到165.194这个主机后,自动发现的监控项:
服务端配置创建Template
创建Discovery rule
键值readPorts跟被监控端配置的参数有关,下面再提。创建监控项原型
宏引用符号{ #SERVICE }和{ #TCP_PORT }跟被监控端返回的json数据有关。net.tcp.listen[]表示监听目标机器的端口状态,返回值为0或1,0表示Down,1表示Up。另外,$1表示键值里的第一个参数,即。
创建触发器原型
添加完监控项和触发器原型的样子:
添加主机并关联此模板
此略。
被监控端配置
首先,看一下/etc/zabbix目录下的文件。scripts目录是新加的,zabbix_agentd.conf也作了修改。
使用自动发现功能,需要返回符号zabbix要求的json数据:
例如:1
2
3
4
5
6
7
8
9
10
11
12{
"data": [
{
"{#SERVICE}": "phjd_mysql",
"{#TCP_PORT}": "28001"
},
{
"{#SERVICE}": "philips_taxfree_tuangou_payment_management",
"{#TCP_PORT}": "16200"
}
]
}
其形式大致如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17{
"data": [
{
"{#KEY01}": "value01_01",
"{#KEY02}": "value01_02",
"{#KEY03}": "value01_03",
...
},
{
"{#KEY01}": "value02_01",
"{#KEY02}": "value02_02",
"{#KEY02}": "value02_03",
...
},
...
]
}
readPorts.sh脚本的内容很简单,就是读取已准备好的json数据文件ports.json,作为返回给zabbix server的值:1
2
3
4
5mypath=$(cd `dirname $0`; pwd)
cat $mypath/ports.json
为了返回给server端,需要再zabbix_agentd.conf中配置:
这样,server端就可以使用readPorts这个键值,以获取写在ports.json中的数据。readPorts下面定义的getPorts、getAllPorts是另外两个可用的自定义键值。
自动发现需监控的服务/端口,难点不在于读取,而在于自动生成json数据文件。此处的ports.json是根据ports.ini转换而来的。
ports.ini文件需人工填写:
getPorts.py脚本如下,用于转换ports.ini为ports.json:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28#!/usr/bin/env python
#coding:utf-8
import os, json, re
mypath = os.path.dirname(os.path.realpath(__file__))
port_list = []
port_dict = {"data":None}
with open('%s/ports.ini' % mypath, 'r') as f:
for line in f.readlines():
line = line.strip()
if line:
try:
port_srv = line.split(':')
port_list.append({"{#TCP_PORT}": port_srv[1].strip(),
"{#SERVICE}": port_srv[0].strip()})
except:
pass
port_dict["data"] = port_list
json_str = json.dumps(port_dict, sort_keys=True, indent=4)
# json_str已是json字符串,但每行尾部有一个多余的空格,zabbix不接受,须删除行尾空格
p = re.compile("s+$")
for line in json_str.split('n'):
ss = re.sub(p, "", line)
print ss
转换ports.ini为json形式:
至于getAllPorts.py,它的功能是直接返回主机上实际开放的端口数据:
zabbix 监控项自动发现过滤_通过Zabbix的自动发现(规则)自动创建监控项相关推荐
- zabbix如何添加图表显示内容_自定义 Zabbix 监控指标及图表
问题描述 有时候 Zabbix 监控系统的模版提供的监控指标并不能满足我们的需求,比如我们要监控服务器的线程数.TCP 连接数等,这些指标在 Zabbix 自带的模板中是没有的,这时候我们就需要自定义 ...
- springboot自动配置原理_今日份学习之Spring Boot自动配置实现原理
通过前面章节的学习,我们掌握了使用Spring Boot框架进行实际应用开发的方法.在使用Spring Boot 的过程中,我们时常会为一些看似简单,但实际上蕴藏了强大功能的实现而惊呼,下面就让我们来 ...
- 艾宾浩斯计划表自动生成网站_施工进度计划表横道图,自动出图超方便,建议收藏...
横道图,是一种非常实用的图表类型.施工进度计划的制定在工程项目里是很重要的,这可以大大提高施工单位的管理水平,是项目施工必备.作为一个在工地摸爬滚打好几年的人来说,这些更是不可或缺的.几年下来,也整理 ...
- bat自动输入密码登录_【第7期】Teamcenter自动登录改进,对portal.bat中登录密码加密...
前言: 之前发过一个Teamcenter登录的文章,大体逻辑是在protal.bat或者eclipse的debug\run configura的-vmargs中加入-Dautologin.user和- ...
- 如何显示密件抄送人员地址_如何在Outlook中使用规则自动密件抄送电子邮件
如何显示密件抄送人员地址 Sometimes, you might want to copy your sent emails to another address without the recip ...
- Mycat监控_监控平台Mycat-web配置指标_作为配置中心注册发现用---MyCat分布式数据库集群架构工作笔记0038
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们再去看这个mycat-web怎么用 点击配置,这里配置我们zookeeper的ip和端口 ...
- python钉钉自动打卡_用Python来实现钉钉自动打卡并发送邮件短信提醒
用Python来实现钉钉自动打卡并发送邮件短信提醒 自从用钉钉打卡,老忘记打,只会python语言,所以用Python写了一个自动跑的脚本,每天定时跑.这样就避免忘记了. 之后把adb.exe所在的文 ...
- python蚂蚁森林自动偷能量_介绍两种实现蚂蚁森林自动“偷”能量的方法
起因 最近博主迷上了偷能量(蚂蚁森林),后来发现一好友每天定点来博主森林偷能量,很准时 大家发现没,每天都是7.16分准时来偷,每天!因为博主的能量是7.16分成熟~ 本来博主呢,以前也用过这些方法, ...
- 五项管理行动日志_迈向学习型组织,企业必须具备五项修炼
未来真正出色的企业,将是能够设法使各阶层人员全心投入,并有能力不断学习的组织. --彼得·圣吉 陈春花老师曾说,一个企业组织在平稳发展之时,最可怕的是怠情,是组织疲劳,就像人们说的"温水煮青 ...
最新文章
- Ubuntu16.04 - 安装RabbitVCS,linux下的TortoiseSVN!!!
- asp.net应用程序_如何在ASP.NET中为聊天应用程序构建键入指示器
- java jdk myeclipse_java初体验(JDK+myeclipse)
- 上周回顾:艾妮闹春 Sun/HP高层人士震荡
- 大众点评被合并至美团? 官方回应:不存在这种可能性
- Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别
- docker专题(2):docker常用管理命令(下)
- 为什么在WSE配置中不要选择Establish Secure Session
- 宗成庆《文本数据挖掘》学习笔记:第一章绪论
- Google Scholar 谷歌学术文献检索技巧总结
- web前端之跳一跳网页版小游戏
- 【软件网每日新闻播报│第9-18期】
- Unix/Linux编程:多协议服务器(TCP/UDP)-----DAYTIME
- adreno630gpu参数_高通骁龙AdrenoGPU天梯以及直观分析,推荐。
- mysql数据库日志binlog保存时效(expire_logs_days)
- 如何使用网线连接树莓派和电脑
- (转)周鸿祎产品秘笈:小版本成就大产品
- 明远智睿5G工业网关 5G物联网人工智能
- oracle 连接查询,子查询,分组函数
- 手机程序电量测试之docker toolbox安装docker
热门文章
- centos php配置mysql数据库_CentOS+Nginx+PHP+MySQL详细配置(图解)
- java 创建线程_【80期】说出Java创建线程的三种方式及对比
- PHP中的des加密类
- python实现分布式_Python如何快速实现分布式任务
- java script的图片隐藏,java和javascript中过滤掉img形式的字符串不显示图片的方法...
- java如何识别tiled地图_Egret学习-TiledMap使用
- vsftp:425 错误
- 【H2 Database】Server模式启动
- java com dll_通过COM组件方式实现java调用C#写的DLL文件
- 字典序最小是什么意思_《拓扑序简介》第十六讲