告警规则仅在本业务组生效失败

Q:给不同业务组都配置的告警规则,并设置了“仅在本业务组”生效。但是在变更操作后,发现收到不是预期的告警这是为什么?并且进一步测试发现,如果先机器列表中删除机器标识,然后关机,就会触发非预期告警的问题;但如果先关机,再删除机器标识就不会触发

A:

出现非预期告警或者告警发不出来通常是告警规则配置错误导致的。需要仔细检查告警规则的配置以及历史告警的详情信息。找出具体是哪个告警规则触发了告警,还可根据日志信息尝试还原告警触发时的情景。

在告警规则配置中,选择 Metric 类型,并在生效配置项中启用了“仅在本业务组生效”的设置,那么在告警生成时会进行判断是否需要过滤。根据告警事件中的标识(ident)与告警规则所在业务组之间的归属关系进行判断,过滤掉非本业务组的告警。

根据描述的测试发现,在先删除后关机器就会产生告警,推测这很可能是因为存在一个兜底的告警规则,即没有设置仅在本业务组生效。删除操作后,采集数据会继续上报,原本归属于某个业务组的机器将变为“未归组对象”,在机器列表中的“未归组对象”是没有业务组归属的。

有关告警流程更多细节可参考 夜莺小课堂 - 夜莺告警流程讲解及常见问题排查思路