概述
在之前的告警中,如果想要发送通知给某个用户,那么需要配置该用户的手机号或者邮箱。如果有多个告警都需要发送给同一个用户,就需要多次配置手机号和邮箱。假如告警要发给多个人,那么就要配置多个用户的手机号和邮箱。这就存在着以下痛点:
- 单个用户的手机号和邮箱无法复用,需要多次配置
- 无法批量配置用户的手机号和邮箱,需要配置许多个
- 如果要修改某个人的联系方式,或者调整一个通知群组的成员,就要多次修改,非常麻烦
基于以上痛点,在新版本的告警中,加入了用户和用户组的管理,并且在此基础上添加了值班组,从而可以:
- 复用某个用户的联系方式
- 配置用户组,可以快速配置一组接收人
- 用户组内成员的变更,只需要修改用户组即可
- 值班组可以很好地解决用户的排班问题,避免通知永远发给所有的人
- ……
用户管理
用户管理主要为了解决用户联系方式复用的问题,并且支持了快速禁用的功能。用户配置的表单参考如下:
其中:
- 可以配置用户的手机号,并且支持国际号码
- 可以配置用户的邮箱,一个用户可以配置多个邮箱
- 可以快速禁用用户,被禁用的用户无法收到通知
- 可以只禁用该用户的短信或者语音,一旦禁止后,该用户不会收到短信或者语音通知
用户组管理
用户组管理解决的主要是通知配置一组用户的问题。通过创建用户组,可以在通知配置的时候,选择该用户组。那么之后该组内的用户变动就会自动生效,无需额外的通知相关配置。用户组配置的表单参考如下:
这里可以快速添加或者删除成员,同时也支持快速禁用一个用户组,用户组一旦被禁用,则该用户组内的成员都不会被通知到。
值班组管理
通知到用户和用户组是一个非常基本的需求,但是还有一些相对高级的场景,需要不同时间通知到不同的用户,也就是值班功能。举例来说,某个服务的运维负责人有两个(用户A和用户B),他们需要每天轮流值班,那么就可以通过创建一个值班组,从而实现今天通知发送给用户A,明天发送给用户B,依次交替。
轮岗值班
在值班组中,最核心的概念就是轮岗。轮岗解决的本质问题是:哪些人在哪个时间范围内,以什么方式来值班。轮岗包含的内容有:
- 开始时间和结束时间(例如今年的6月1号到10月31号)
- 值班的限制(例如非工作时间不用值班)
- 值班对象(例如用户A和用户B)
- 轮岗类型(例如以天为周期,还是以周为周期)
- 交班时间(多久换下一个人,例如每一天换一次)
上面是一个示例,它表示的是:
- 从2021年6月1号开始,一直到2021年6月30号结束
- 每个工作日都要有人值班(非工作如需值班)
- 张三和李四两个人轮流值班
- 每一天换一个人
那么最终的效果就是:
可以看到,只有工作日需要有人值班,并且每个人值班都是完整的一天。
当然,上面只是一个非常简单的例子,实际场景中,轮岗对象可能是多个用户,也可能是用户和用户组(用户组作为一个整体来进行排班)。并且轮岗的类型以及换班的类型也支持多种,可以非常灵活地配置,以满足实际的使用场景。
代班
代班用来进行用户之间的相互替代。比如用户A在某一天需要值班,但是这天他请假了,因此需要设置一个代理人来代替他值班。代班解决的本质问题是:哪个人替代哪些人,在哪个时间范围内,以什么样的方式来替代。代班包含的内容有:
- “执行对象”和“对象”(“执行对象”会替代“对象”)
- 开始时间和结束时间
- 代班限制(例如只需要工作时间代班)
例如上图的例子,我们设置2021年6月3号这一天,李四代替张三值班,并且是全天替代,那么可以看到最终的值班效果就变成:
也就是说,6月3号本来应该是张三值班的,但是现在变成了李四。假如我们修改一下代班的限制,改为只有工作时间替代:
那么最终的排班结果如下:
可以看到,只有工作时间,李四才需要替代张三值班,非工作时间还是张三在值班。
关联日历
由于值班的配置中涉及到时间范围、工作日与非工作日、工作时间与非工作时间等信息,而这些信息又是和日历相关的,因此每个值班组都会关联一个日历。可以是默认的全局日历,也可以为每个值班组新建一个日历。相关配置如下:
如果自定义日历的话,那么可以设定该日历的时区、工作日、工作时间以及节假日相关配置。例如:
如果配置了自定义日历,那么该日历只对该值班组生效。
进一步参考
了解更多的信息,可以参考 SLS 的官方文档:
对我们工作感兴趣的,可以通过如下方式了解更多,谢谢关注!
- SLS首页:https://www.aliyun.com/product/sls
- 知乎:https://zhuanlan.zhihu.com/aliyunlog
- 微信公众号:日志服务 or LogAnalytics
- 哔哩哔哩:https://space.bilibili.com/630680534