本文介绍限制告警通知时段的常见方法以及各自适用的场景。
背景信息
在对系统进行监控告警的过程中,并非在任何时间段都需要接收告警通知,例如针对以下场景,可通过相关设置,限制告警通知时段。
针对计划内变更触发的已知告警,无需通知。
非工作时间不接收非严重的告警通知。
晚上不接收电话告警通知。
方法比较
各种方法的比较如下表所示。在实际设置过程中,您可以按照实际需求选择合适的方法。
Cron表达式 | 临时关闭 | 静默策略 | 全局日历 | 值班组 | |
作用阶段 | 影响告警评估,从而影响通知。 | 影响告警评估,从而影响通知。 | 仅影响通知。 | 仅影响通知。 | 仅影响通知。 |
支持的通知渠道 | 任意 | 任意 | 任意 | 任意 | 支持所有与用户、用户组相关的通知渠道,例如短信、电话、邮件以及钉钉等可以@用户的场景。 |
是否支持复用 | 无法复用,需要针对每个告警监控规则单独配置。 | 无法复用,需要针对每个告警监控规则单独配置。 | 支持 | 支持 | 支持 |
是否临时设置 | 否 | 是 | 是 | 否 | 否 |
支持的场景 | 周期性屏蔽某一条告警监控规则触发的告警。 主要针对单条告警监控规则。 | 临时屏蔽某一条告警监控规则触发的告警。 主要针对单条告警监控规则。 | 临时或永久屏蔽符合条件的告警。 支持对多条告警监控规则进行设置。 | 全局工作日及工作时间设置。 对所有告警生效。 | 支持任意的值班时段设置。 仅对使用该值班组的告警监控规则生效。 |
配置复杂度 | 简单 | 简单 | 较复杂 | 简单 | 较复杂 |
通过Cron表达式限制告警触发时段
在设置告警监控规则时,需设置检查频率。您可以设置标准的Cron表达式,用于控制检查频率。例如:
0/5 * * * *
表示从0分钟开始,每隔5分钟检查一次。0 0/1 * * *
表示从0点0分开始,每隔1小时检查一次。0 18 * * *
表示每天18点0分检查一次。0 0 1 * *
表示每月1日的0点0分检查一次。
此外您还可以使用复杂的Cron表达式,实现更加灵活的告警时间段限制。例如:
希望目标告警监控规则在每天08:00~18:00之间每5分钟执行一次告警检查,则您可以设置Cron表达式为
0/5 8-17 * * *
。希望目标告警监控规则在周一到周五的08:00~12:00和14:00~18:00之间每分钟执行一次告警检查,则您可以设置Cron表达式为
* 8-11,14-17 * * 1-5
。
Cron表达式支持的最小时间粒度为分钟。一共分为5段,分别表示分钟、小时、日、月、周。更多信息,请参见https://crontab.guru/。
通过临时关闭告警来限制告警触发时段
针对某些预期告警(例如由于临时变更系统,触发的告警),您希望在一段时间内不再通知,则可以通过临时关闭功能,暂时关闭某个告警。
临时关闭后,在该时间之内告警监控规则不会继续评估和触发告警。等待关闭时间结束后,告警监控规则恢复正常。如果您要提前恢复告警,可单击恢复。
通过静默策略限制告警通知时段
针对多条告警监控规则触发的告警(例如某集群升级过程中,可能出现的一系列预期告警),您希望在一段时间内都不通知,则可以通过静默策略实现。更多信息,请参见告警静默机制。
如果这些告警监控规则绑定同一个告警策略,则您可以在该告警策略中设置静默策略,例如在2022-12-02 12:00~18:00期间,临时屏蔽由test-project项目产生的所有告警,如下图所示。
通过全局日历限制告警通知时段
针对全局告警设置相同的通知时间,则您可以使用全局日历功能。例如针对绑定了某行动策略的告警,您只想在工作日的工作时间(周一到周五的09:00~18:00)收到告警通知,可参考如下配置。
通过值班组限制告警通知时段
全局日历主要解决全局工作日和工作时间相关的配置。针对个别告警,需要使用不同的发送时段,则您可以使用值班组实现完全灵活且自定义的发送时段。例如针对某个告警监控规则触发的告警,您只想在每天夜间(00:00~07:00)接收告警通知,则您可以创建一个值班组,仅在该时间段值班。