zabbix自发现item监控
在zabbix监控中,我们可以通过自带item的可以和自定义key进行监控,但是当所需要的监控项不确定,比如key会根据时间进行变化时,这时候我们就不能把item的key定义死,要通过自发现这个高级功能来动态的添加key和下架key,自发现key其实也很简单,步骤分为如下:
1、首先要自定义两个脚本,一个用于key的自发现,一个用于当做key的名称,根据key返回值,不啰嗦了,直接上脚本:
一个用于自发现的脚本:必须输出为json的格式,并且json的key值也有要求,必须是“{#XXXX}”这样的格式作为json格式里面的key,例如定义key的dict["{#P_ROLE}"],其中的{#P_ROLE}会由于定义的key,用于动态生成key
脚本可以用shell,也可以用Python
例如有:discovery.py
|
import json def create_json(path): json_list = [] with open(path) as f: for line in f.readlines(): dict = {} split = line.split("|") dict["{#IP}"] = split[0] dict["{#PORT}"] = split[1] dict[“{#TIME}”]=split[2] json_list.append(dict) sum = {} sum["data"] = json_list sum = json.dumps(sum) print sum if __name__ == '__main__': path = "/data/ alert_output/segment_conf.txt" create_json(path) |
如上代码/data /alert_output/segment_conf.txt中的数据格式是根据“|”进行连接的数据:例如
192.168.110.88|8088|2019-05-05|value_a|value_b……等,这样我们就可以更具ip,port,time唯一确定一行,也是唯一的一个key。
接下来我们写一个更具key值返回唯一的值,这里写一个shell脚本,由于上面根据ip,port,time三个值唯一确定一个key,所以在shell脚本中我们也通过输入三个参数作为key用于获取值。例如:alert.sh
执行:sh alter.sh ip port time
|
#!/bin/bash [ $# -ne 3 ] && exit 1 path=/data/ alert_output/ segment_conf.txt value=`cat $path | grep $1 | grep $2 | grep $3 | awk -F "|" '{print $4}'` if [ $value -gt 0 ] then echo 1 #用于对应于item之key的触发器告警的值 else echo 0 #用于恢复,这里可以根据不同的需求写不同的输出 fi |
到这里位置,我们要的脚本已经写好了,现在我们需要配置zabbix agent的配置文件,在zabbix agent文件夹中的../etc/zabbix_agent.conf中修改配置文件如下:
|
PidFile=/usr/local/zabbix-agent/zabbix_agentd.pid LogFile=/usr/local/zabbix-agent/zabbix_agentd.log Server=zabbix server ip ServerActive= zabbix server ip Hostname=nn1 EnableRemoteCommands=1 LogRemoteCommands=1 UnsafeUserParameters=1 UserParameter=discovery.test [*],python xxx/xxx/ discovery.py UserParameter=alert.test [*], sh xxx/xxx/alert.sh $1 $2 $3 #这里表示传入三个参数 |
如上就配置好了zabbix的agent的配置文件了,接下来重启zabbix的agent,如果没有配置重启命令,就可以通过ps 和kill干掉zabbix的进程,然后启动zabbix,如果配置了启动命令,service zabbix_agentd restart就可以了
接下来就到zabbix的页面进行配置了
第一步,配置自发现
找到一台主机进入如下页面

然后点击创建



这样我们就配好自发现的脚本,接下来来配置key了

如上图所示,就是我们配好的一个自发现,然后在配好的自发现的基础上点击配置key

好,到此为止,已经配置好自发现key,然后需要配置trigger了,用于告警,这个就很简单了,也是在自发现的基础上配置,如下图所示

然后点击创建触发器

这里很简单,就不详细介绍配置了,直接点击add


然后就可以选择直接配置好的key了,下面的trigger配置就不介绍了,因为都是通用的配置,到这里一个自发现的key就介绍完了
zabbix自发现item监控的更多相关文章
- Zabbix自动发现并监控磁盘IO、报警
本文转载自: https://www.93bok.com 引言 Zabbix并没有提供模板来监控磁盘的IO性能,所以我们需要自己来创建一个,由于一台服务器中磁盘众多,如果只有一两台可以手动添加,但服务 ...
- 添加zabbix自动发现(监控多tomcat实例)
说明 何为自动发现?首先我们监控多tomcat实例,如果一个个实例地添加或许可以完成当前需求.但是日后随着实例的增多,再手动一个个去添加就十分不方便了.这时候需要自动发现这个功能,来帮助我们自动添加监 ...
- Zabbix 自动发现并监控磁盘IO、报警 引言
引言 Zabbix并没有提供模板来监控磁盘的IO性能,所以我们需要自己来创建一个,由于一台服务器中磁盘众多,如果只有一两台可以手动添加,但服务集群达到几十那就非常麻烦,因此需要利用自动发现这个功能,自 ...
- Zabbix lld发现磁盘监控
一.软件版本 操作系统:CentOS-6.5-x86_64 zabbix版本:3.0.3 二.脚本编写: 1.python版本: #!/usr/bin/env python import json i ...
- zabbix自动发现与监控内存和CPU使用率最高的进程,监测路由器
https://cloud.tencent.com/info/488cfc410f29d110c03bcf0faaac55b2.html (未测试) https://www.cnblo ...
- ss命令结合zabbix对socket做监控
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 最近天冷了,socket也出问题了,一直没有做监控,现在就把监控加起来,目前我们使用的有z ...
- zabbix自动发现功能实现批量web url监控
需求: 现在有大量url需要监控,形式如http://www.baidu.com ,要求url状态不为200即报警. 需求详细分析: 大量的url,且url经常变化,现在监控用的是zabbix,如果手 ...
- 运维监控-使用Zabbix Server 添加自定义 item
运维监控-使用Zabbix Server 监控自定义 item 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客就直接开门见山如何使用Zabbix Server 监控自定义 ...
- Zabbix整合MegaCLI实现物理硬盘的自动发现和监控
MegaCLI是LSI提供的用户空间管理RAID卡(LSI芯片)工具,适用于大多数的Dell服务器. MegaCLI介绍: http://zh.community.dell.com/techcente ...
随机推荐
- TCP/IP协议-网络编程
本文转载自公众号“呆呆熊一点通”,作者:呆呆 开篇语 前两年, 就买了<TCP/IP网络编程>这本书, 由于自身基础薄弱, 只是走马观花翻阅了几张. 后来工作了这些年, 越来越感到瓶颈期已 ...
- MyBatis if标签的用法
<!-- 4.1.1 在WHERE条件中使用if 需求: 实现一个用户管理高级查询功能,根据输入的条件去检索用户信息.这个功能 还需要支持以下三种情况:当只有输入用户名时,需要根据用户名进行模糊 ...
- MyBatis从入门到精通:第一章配置MyBatis
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
- 【小家Spring】聊聊Spring中的数据绑定 --- DataBinder本尊(源码分析)
每篇一句 唯有热爱和坚持,才能让你在程序人生中屹立不倒,切忌跟风什么语言或就学什么去~ 相关阅读 [小家Spring]聊聊Spring中的数据绑定 --- 属性访问器PropertyAccessor和 ...
- py+selenium运行时报错Can not connect to the Service IEDriverServer.exe
问题: 运行用例时,出现报错(host文件已加入127.0.0.1 localhost): raise WebDriverException("Can not connect to the ...
- 个人永久性免费-Excel催化剂功能第42波-任意字符指定长度随机函数
日常做表过程中,难免会有一些构造数据的场景,构造数据最好是用随机的数据,如随机密码,随机英文字母.数字等.在Excel原生的随机函数Rand中,仅能处理数字的随机,且最终生成的结果也是数字类型.今天E ...
- VUE v-for循环中每个item节点动态绑定不同函数方法
一. 业务场景: 一个title 处 可能有 一个或多个按钮, 按钮对应不同的响应事件 二. 思路 : 按钮个数 根据传入的数据length 来循环渲染, 每条数据对应的事件名称 通过动态绑定 三 ...
- Spring管理事物两种方式
Spring管理事物两种方式 1. 编程式事物管理(在开发中不经常使用) 使用步骤 1. 配置数据库事物管理 DataSourceTransactionManager <!--配置事物管理器-- ...
- configASSERT( uxCriticalNesting == ~0UL );问题
今天在单步调试FreeRTOS时,一直进入port.c 中的configASSERT( uxCriticalNesting == ~0UL ):函数.照片如下 上网一查,并且结合这个英文注释,才发现, ...
- java - 多态实现机制
Java提供了编译时多态和运行时多态两种多态机制.前者是通过方法重载实现的,后者是通过方法的覆盖实现的. 在方法覆盖中,子类可以覆盖父类的方法,因此同类的方法会在父类与子类中有着不同的表现形式. 在J ...