夜莺-Nightingale
夜莺V7
项目介绍 功能概览
部署升级 部署升级
数据接入 数据接入
告警管理 告警管理
数据查看 数据查看
功能介绍 功能介绍
API FAQ
夜莺V6
项目介绍 架构介绍
快速开始 快速开始
黄埔营
安装部署 安装部署
升级
采集器 采集器
使用手册 使用手册
API API
数据库表结构 数据库表结构
FAQ FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵 第1章:天降奇兵
第2章:探索PromQL 第2章:探索PromQL
第3章:Prometheus告警处理 第3章:Prometheus告警处理
第4章:Exporter详解 第4章:Exporter详解
第5章:数据与可视化 第5章:数据与可视化
第6章:集群与高可用 第6章:集群与高可用
第7章:Prometheus服务发现 第7章:Prometheus服务发现
第8章:监控Kubernetes 第8章:监控Kubernetes
第9章:Prometheus Operator 第9章:Prometheus Operator
参考资料

屏蔽规则

夜莺监控(Nightingale)中的屏蔽规则(菜单入口:告警-规则管理-屏蔽规则TAB)通常用于下面的场景:

  • 提前屏蔽掉预期内的告警,典型的就是做一些维护动作,比如某个机器要重启,提前屏蔽这个机器相关的告警
  • 有些问题急忙修复不了,已经知悉,持续告警通知也没意义,就先临时屏蔽掉

原理

告警事件经由告警引擎产生后,在持久化到 DB 之前,会先经过屏蔽规则的判断,如果匹配了屏蔽规则,就不会持久化到 DB,更无法通知用户。工作时机如下图:

夜莺屏蔽规则工作时机

屏蔽规则,本质上就是配置了一堆过滤条件,用于过滤想要屏蔽的告警事件。如何过滤呢,显然,就是根据告警事件的属性和标签来过滤。比如:

  • 事件是哪个数据源产生的
  • 事件的级别
  • 事件的标签

比如下面的例子:

夜莺屏蔽规则配置示例

  • 数据源类型:Prometheus,只有数据源类型是 Prometheus 的告警事件,才会被屏蔽
  • 数据源:没配,表示不做限制
  • 事件等级:三个级别都勾选了,表示所有级别的告警事件都要被屏蔽
  • 事件标签:配置了两个标签,相当于:ident in ("10,1.2.3", "10.1.2.4") and rulename =~ "宕机"

上面所有的过滤条件,整体是and 的关系,即所有的条件都命中了某个事件,那个事件才会被屏蔽。

FAQ

1. 我已经配置了屏蔽规则,相关告警事件为啥还是可以看到?

通常是因为:事件先产生了,才去配置的屏蔽规则。屏蔽规则是事后补救的,不能对已经产生的事件起作用。

2. 事件标签里的多个条件也是 and 关系,但是用户没有理解

如下图,用户在事件标签过滤那里,配置了两个条目,标签 key 都是 ident:

夜莺屏蔽规则事件标签配置错误示例

用户的本意是 10.1.2.11310.1.2.114 这俩机器任意一台都要被屏蔽,但是事与愿违,这里是 and 的关系,相当于是:ident = "10.1.2.113" and ident = "10.1.2.114",显然,这个条件永远不会命中任何事件。实际上,用户应该使用 in 操作符,如下所示:

夜莺屏蔽规则事件标签配置正确示例

3. 屏蔽规则的生效范围,仅限当前业务组

这个其实在页面上有提示。为了避免误操作,屏蔽规则的生效范围仅限当前业务组。也就是说,屏蔽规则只能屏蔽当前业务组下的告警事件,其他业务组下的告警事件不会受影响。

即:屏蔽规则和告警规则如果在不同业务组下,屏蔽规则不会对其生效。

如果屏蔽规则是全局生效的,就会比较危险,比如某个用户随便配置了一个告警规则,过滤条件可以匹配所有告警事件,那么公司所有的告警事件都会被屏蔽。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat