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 ...
随机推荐
- web应用分页
1. 场景描述 目前大部分的应用程序中都会用到分页功能,以便减少前端浏览器及后台服务器的压力,以及其他方面的考虑. (1)分页从概念上可分为逻辑分页和物理分页,逻辑分页主要是通过应用程序(前端或者后端 ...
- Noip 2016 天天爱跑步 题解
[NOIP2016]天天爱跑步 时间限制:2 s 内存限制:512 MB [题目描述] 小C同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是 ...
- 20141111-WCF获得Web路径
在WCF中调用Server.MapPath 获取服务发布目录路径 在WCF中调用Server.MapPath 获取服务发布目录路径 在WCF中想使用Server.Map获取当前服务发布目录的绝对路径. ...
- octavia的实现与分析(二)·原理,基本架构与基本流程
[了解] 其实说白了,Octavia就是将用户的API请求经过逻辑处理,转换成Haproxy或者Nginx的配置参数,下发到amphora虚机中. Octavia的内部实现中,逻辑流程的处理主要使用T ...
- 洛谷P2319 [HNOI2006]超级英雄 题解
题目链接: https://www.luogu.org/problemnew/show/P2319 分析 每错,这是一道海南不对是河南呀呀呀错了是湖南的省选题. 但是还是可以作为二分图第二题来练手的, ...
- 关于iphone手机上点击事件不起作用
今天调试手机端H5页面的时候,发现一个很坑的问题,绑定的点击事件不起效果,安卓上都没问题,事件能正确触发,但是在iPhone没反应. 开始觉得是写法问题,后来发现,是由于iPhone上,点击的对象,必 ...
- 浅谈redis
1.Redis简介: Redis是一个开源的使用ANSI C语言编写,遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务 ...
- Spark学习之RDD
RDD概述 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合 ...
- C#3.0新增功能09 LINQ 基础02 LINQ 查询简介
连载目录 [已更新最新开发文章,点击查看详细] 查询 是一种从数据源检索数据的表达式. 查询通常用专门的查询语言来表示. 随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据 ...
- linux初学者-网卡的链路聚合篇
linux初学者-网卡的链路聚合篇 网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度. 网卡的链路聚合一般常 ...