zabbix触发器标签提取监控项子字符串功能实现对应告警恢复
0 实验环境
zabbix 6.0
1 监控项
1.1 监控项设置
通过zabbix agent自定义监控项,读取某文件内容模拟日志/trap告警,测试获取触发器标签中提取子字符串功能,以及相同标签的触发器自动恢复功能。
1.2 手工运行
手动触发之后,模拟产生如下日志数据,意为集群中node-01主机离线。
07:28:29 2023/08/03 AlertLevel:major AlertResourceType:host AlertHostName:node-01 AlertValue:offline
2 触发器
2.1 触发器设置
通过设置问题表达式,设定满足AlertResourceType:host.AlertValue:offline正则表达式的日志为“主机离线”告警,满足AlertResourceType:host.AlertValue:online正则表达式的日志为“主机离线”告警恢复表达式。
但此时存在一个问题,假如集群中有多台主机离线再恢复,仅通过关键词判定告警恢复就无法对应,例如node-01离线的告警被node-02的上线恢复,因此需要通过标签对主机名称进行匹配判断。
按图中所示,OK event closes条件设置为All problems if tag values match,Tag for matching设置为AlertHostName。此时只有AlertHostName标签值相同时,事件才会关闭,触发器才会恢复
2.2 标签设置
通过iregsub函数(相对于regsub不区分大小写)对监控项值(即告警内容)进行截取,其中每个括号内为一个匹配,\1、\2分别按顺序输出对应值。
{{ITEM.VALUE}.iregsub("AlertHostName:(\S+)","\1")}
3 测试
3.1 node-01离线
1.2小结告警内容触发如下告警,模拟node-01节点离线,此时可以看出已经产生标签,标签名为AlertHostName,标签值为node-01
3.1 node-02上线
修改文本内容如下,意为node-02节点上线,并手工触发告警。
07:28:29 2023/08/03 AlertLevel:major AlertResourceType:host AlertHostName:node-02 AlertValue:online
此时AlertHostName标签为node-02,因和node-01不匹配,因此告警无法恢复。
3.2 node-01上线
修改文本内容如下,意为node-01节点上线,并手工触发告警。
07:28:29 2023/08/03 AlertLevel:major AlertResourceType:host AlertHostName:node-01 AlertValue:online
此时因为AlertHostName标签值一致,告警得以恢复
zabbix触发器标签提取监控项子字符串功能实现对应告警恢复的更多相关文章
- Zabbix 触发器配置多监控项阈值
配置内存自定义监控项 # 监控内存命令 [root@web01 ~]# free -m|awk '/^Mem/{print $NF/$2}' 0.664609 [root@web01 ~]# free ...
- zabbix入门之添加监控项
zabbix入门之添加监控项 添加一个不带参数的监控项(system.cpu.switches) 进入"配置"-->"主机"选择某主机的"监控项 ...
- zabbix WebUI自定义Nginx监控项模板
zabbix webUI自定义Nginx监控项模板 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.创建模板 1>.如下图所示,依次点击"配置" --- ...
- zabbix通过agent添加监控项的步骤
1.确定要监控的对象的指标 2.在agent端上,把如何具体获取指标写成shell脚本,并放在一个和其它agent端统一的位置上 3.在agent端上,自定义监控项key值,配置zabbix_agen ...
- Zabbix添加SNMP自定义监控项OID出现“No Such Instance currently exists at this OID”
原因:zabbix 是用snmpget来获取指定的OID数据,snmpwalk是遍历某个OID下的数据. 所以一定要用snmpget来验证某个OID是否正确. snmptranslate 获取的OID ...
- Zabbix触发器和监控项设置时间范围
目录 一.实际业务场景 业务问题 解决办法 二.Zabbix触发器和监控项与用户预警设置时间范围配置流程 一.触发器设置时间范围 二.监控项设置时间范围 三.用户报警设置启用时间 一.实际业务场景 业 ...
- 【zabbix】自定义监控项key值
说明: zabbix自带的默认模版里包括了很多监控项,有时候为了满足业务需求,需要根据自己的监控项目自定义监控项,这里介绍一种自定义监控项的方式. 1,首先编写自定义监控脚本,本文以监控httpd进程 ...
- Zabbix自定义监控项(模板)
虽然Zabbix提供了很多的模板(简单理解为监控项的集合),在zabbix界面点击share按钮就可以直接跳到模板大全的官方网站,但是由于模板内的监控项数量太多不好梳理且各种模板质量参差不齐,还是建议 ...
- Zabbix 监控项更多用法
监控服务端口状态 配置 Zabbix 提供的检测器 配置自定义值映射 查看监控项数据状态 触发器配置 自定义监控项 TCP 11 种状态 TCP 11 种状态 LISTEN - 侦听来自远方TCP端口 ...
- 【转载】【zabbix】自定义监控项key值
[转载]https://www.cnblogs.com/zhenglisai/p/6547402.html [zabbix]自定义监控项key值 说明: zabbix自带的默认模版里包括了很多监控 ...
随机推荐
- 2022-10-02:以下go语言代码能否通过编译?A: 能;B: 不能;C: 不知道。 package main import ( “fmt“ ) type worker interfa
2022-10-02:以下go语言代码能否通过编译?A: 能:B: 不能:C: 不知道. package main import ( "fmt" ) type worker int ...
- 2022-03-02:k8s安装minio,yaml如何写?
2022-03-02:k8s安装minio,yaml如何写? 答案2022-03-02: yaml如下: apiVersion: apps/v1 kind: Deployment metadata: ...
- 2021-09-11:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。反转后整数超过 32 位的有符号整数的范围就返回0,假设环境不允许存储 64 位整数(有符号或无符号)。
2021-09-11:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果.反转后整数超过 32 位的有符号整数的范围就返回0,假设环境不允许存储 64 位整数(有符号或无符号). 福大大 ...
- pycharm eslint 关闭
pycharm 关闭eslint 文件->设置->语言和框架->JavaScript->代码质量工具->ESLint
- import MySQLdb as Database ModuleNotFoundError: No module named ‘MySQLdb‘
import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' import MySQLdb as Database ...
- JDBC-Utils层的简单运用
项目中JDBC的Utils层运行需要以下六个步骤 //1.定义属性为空 private static String driver = null; private static String url = ...
- Flutter编写的数独游戏
一个使用Flutter编写的每日数独小游戏,支持Android和ios.代码已上传到github:https://github.com/huhx/flutter_sudoku Library 状态管理 ...
- 万字长文详述ClickHouse在京喜达实时数据的探索与实践
1 前言 京喜达技术部在社区团购场景下采用JDQ+Flink+Elasticsearch架构来打造实时数据报表.随着业务的发展 Elasticsearch开始暴露出一些弊端,不适合大批量的数据查询,高 ...
- Blazor HyBrid 授权讲解
Blazor HyBrid 授权讲解 本文介绍 ASP.NET Core 对 Blazor Hybrid 应用中的安全配置和管理及 ASP.NET Core Identity 的支持. Blazor ...
- C++程序开发技巧
引言 类(class)的使用分为两种--基于对象(object Based)和面向对象(object oriented) 基于对象是指,程序设计中单一的类,和其他类没有任何关系 单一的类又分为:不带指 ...