限制 SLS告警通知时段的几种常见方法

Posted 阿里云云栖号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了限制 SLS告警通知时段的几种常见方法相关的知识,希望对你有一定的参考价值。

前言

在对系统进行监控告警的过程中,有时候并非在任何时候都要接收告警通知,例如以下场景:

  • 计划内变更触发的已知告警可以无需通知
  • 非工作时间不接收不严重的告警
  • 夜里不接收电话告警
  • 等等

本文会介绍几种常见的限制告警通知时段的方法,以及它们各自所适用的场景。

方案比较

各种方案的比较参考如下,在实际配置告警过程中,可以按照实际需求选择合适的方案。

Cron表达式临时关闭静默策略全局日历值班组
作用阶段影响告警评估,从而影响通知影响告警评估,从而影响通知仅影响通知仅影响通知仅影响通知
支持的通知渠道不限制不限制不限制不限制支持所有与人相关的通知渠道,例如短信、电话、邮件,以及钉钉等可以@用户的场景。
是否可以复用无法复用,需要针对每个告警规则单独配置无法复用,需要针对每个告警规则单独配置可以可以可以
是否临时设置
支持的场景较复杂简单简单较复杂复杂
配置复杂度简单简单较复杂简单较复杂

通过 Cron 表达式限制告警触发时间段

在配置告警规则的时候,需要设置告警规则的检查频率,例如设置为固定5分钟间隔,则梅5分钟该规则就会对数据进行一次检查评估,判断是否需要触发告警。

这里除了设置固定间隔外,还支持设置 Cron 表达式。这里使用的是标准的 Cron 表达式,最小时间粒度为分钟。一共分为5段,分别表示:分钟、小时、日、月、周。例如:

  • 0/5 * * * *表示从0分钟开始,每隔5分钟检查一次
  • 0 0/1 * * *表示从0点0分开始,每个1小时检查一次
  • 0 18 * * *表示每天18点0分检查一次
  • 0 0 1 * *表示每月1日的0点0分检查一次

除了这些基础的使用之外,还可以使用稍微复杂一些的 Cron 表达式,实现更加灵活的告警时间段限制。

  • 例如只希望白天8点到18点之间触发告警,则可以设置为 0/5 8-17 * * *,这个配置表示从 08:00 开始,到 17:59 结束,每5分钟会执行一次告警检查,其余时间则不执行。
  • 例如希望周一到周五的上午8点到12点,下午14点到18点之间,每分钟都执行一次告警,则可以配置为* 8-11,14-17 * * 1-5

关于 Cron 表达式的更多使用以及介绍,可以参考 https://crontab.guru/

通过临时关闭告警来限制告警触发时间段

针对某些预期内的告警(例如临时做系统变更,会有一些已知告警),我们希望它们在今后的一段时间内不再通知,那么可以通过临时关闭功能,暂时关闭某个告警。

临时关闭后,在该时间之内,告警规则就不会继续检查和触发,超过该时候之后,告警规则会恢复正常。

如果想要提起中断该作用,只需要点击“恢复”操作即可。

通过静默策略限制告警通知时间

通过临时关闭告警,作用的只是某一个告警规则。如果需要针对多个告警规则都需要在接下来的一段时间内不通知,可以通过静默策略来实现。例如在某集群升级过程中,可能会有一系列的预期内告警,希望对这些告警做屏蔽。

如果这些告警使用的都是同一个告警策略,则可以在告警策略中设置静默规则,例如针对所有 test-project 这个项目产生的告警,临时屏蔽一段时间,则可以设置如下:

该配置即表示,对于 test-project 这个项目产生的告警,会在 2022年12月2日的12点到18之间进行屏蔽,不会通知。

通过日历设置工作日与工作时间

如果希望针对全局告警实现相同的通知时间配置,可以使用全局日历功能。例如在全局日历中设置工作日和工作时间:

然后就可以在行动策略中设置发送时段:

这样所有使用了该行动策略的告警都会遵守该时间段设置,只会在工作时间(根据上图的示例配置,即每周一到周五的9点到18点之间)发送告警,超出该时间范围则不会通知。

更多关于全局日历以及日期重置的使用,可以参考文档:

通过值班组实现灵活的值班时间

全局日历主要解决的是全局工作日、工作时间相关的配置。如果针对个别告警,需要使用不同的发送时段设置,可以考虑使用值班组来实现完全灵活且自定义的发送时段。

例如需要每天夜间(0点到7点)接收通知,则可以新建值班组,然后添加轮岗,配置参考如下:

保存后切换到“最终排班”模式查看,可以看到每天只有特定时间段是值班的,即只在这个特定时间段内才会接收到告警通知。

然后行动策略中选择该值班组即可,例如:

需要注意的是,由于值班组里已经设定了时间段,所以行动策略里的“发送时段”选择“任意”即可,这样时间段就完全由值班组控制。如果这里“发送时段”选择了其它选项,那么最终的效果是,先使用全局日历判断是否发送通知,如果需要发送通知,才会使用值班组的时间段做二次判断。

更多关于值班组的使用,可以参考文档 https://help.aliyun.com/document_detail/207705.html

参考文档

原文链接

本文为阿里云原创内容,未经允许不得转载。

以上是关于限制 SLS告警通知时段的几种常见方法的主要内容,如果未能解决你的问题,请参考以下文章

Android 蓝牙低功耗 (BLE) API 尚未准备好迎接黄金时段

智能巡检告警配置实践

PHP关于时间的时段的重合 整合的方法

py导出时段报表

设置一天中不同时段的倒计时

银盒子扫码下单在线订单开启商品售卖时段使用说明