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

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
云备份 Cloud Backup,100GB 3个月
简介: 在对系统进行监控告警的过程中,有时候并非在任何时候都要接收告警通知,本文会介绍几种常见的限制告警通知时段的方法,以及它们各自所适用的场景。

前言

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

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

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


方案比较

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

Cron表达式

临时关闭

静默策略

全局日历

值班组

作用阶段

影响告警评估,从而影响通知

影响告警评估,从而影响通知

仅影响通知

仅影响通知

仅影响通知

支持的通知渠道

不限制

不限制

不限制

不限制

支持所有与人相关的通知渠道,例如短信、电话、邮件,以及钉钉等可以@用户的场景。

是否可以复用

无法复用,需要针对每个告警规则单独配置

无法复用,需要针对每个告警规则单独配置

可以

可以

可以

是否临时设置

支持的场景

较复杂

简单

简单

较复杂

复杂

配置复杂度

简单

简单

较复杂

简单

较复杂


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

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

1.png

这里除了设置固定间隔外,还支持设置 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/


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

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

2.png

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

3.png

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


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

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

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

4.png

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


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

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

5.png

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

6.png

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

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


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

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

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

7.png

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

8.png

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

9.png

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

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


参考文档

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
131 3
|
7天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
6月前
|
C++ 开发者 Python
实现Python日志点击跳转到代码位置的方法
本文介绍了如何在Python日志中实现点击跳转到代码位置的功能,以提升调试效率。通过结合`logging`模块的`findCaller()`方法记录代码位置信息,并使用支持点击跳转的日志查看工具(如VS Code、PyCharm),开发者可以从日志直接点击链接定位到出错代码,加快问题排查。
|
3月前
|
数据可视化 应用服务中间件 Apache
优化集中式日志记录的方法:添加 Logstash 过滤器
优化集中式日志记录的方法:添加 Logstash 过滤器
45 1
|
3月前
|
开发者 前端开发 编解码
Vaadin解锁移动适配新境界:一招制胜,让你的应用征服所有屏幕!
【8月更文挑战第31天】在移动互联网时代,跨平台应用开发备受青睐。作为一款基于Java的Web应用框架,Vaadin凭借其组件化设计和强大的服务器端渲染能力,助力开发者轻松构建多设备适应的Web应用。本文探讨Vaadin与移动设备的适配策略,包括响应式布局、CSS媒体查询、TouchKit插件及服务器端优化,帮助开发者打造美观且实用的移动端体验。通过这些工具和策略的应用,可有效应对屏幕尺寸、分辨率及操作系统的多样性挑战,满足广大移动用户的使用需求。
65 0
|
3月前
|
存储 运维 监控
Entity Framework Core 实现审计日志记录超棒!多种方法助你跟踪数据变化、监控操作,超实用!
【8月更文挑战第31天】在软件开发中,审计日志记录对于跟踪数据变化、监控用户操作及故障排查至关重要。Entity Framework Core (EF Core) 作为强大的对象关系映射框架,提供了多种实现审计日志记录的方法。例如,可以使用 EF Core 的拦截器在数据库操作前后执行自定义逻辑,记录操作类型、时间和执行用户等信息。此外,也可通过在实体类中添加审计属性(如 `CreatedBy`、`CreatedDate` 等),并在保存实体时更新这些属性来记录审计信息。这两种方法都能有效帮助我们追踪数据变更并满足合规性和安全性需求。
73 0
|
3月前
|
SQL JavaScript 前端开发
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
|
4月前
|
监控
查看服务器/IIS日志、log、访问信息基本方法
除了手动查看,你也可以使用日志分析工具,如Log Parser、AWStats等,这些工具可以帮助你更方便地分析日志数据。
639 1
|
3月前
|
Java API 开发工具
日志记录当前类和当前方法
公司原有日志记录需手动输入类名与方法名,繁琐且易错。目标是开发工具类简化此过程。调研发现`Thread.currentThread().getStackTrace()`可获取调用栈信息,0号索引为该方法自身。在被调用的方法内,可通过访问1号索引获取所在类及方法名。为此,创建`CurClassAndMethodUtil`工具类,其`getCurClazzAndMethod`方法返回调用者的类名与方法名,解决手动输入问题。实际应用中,因多一层工具方法调用,需访问2号索引。最终实现自动化获取记录信息,提高效率。
|
6月前
|
存储 运维 监控
【Docker专栏】Docker日志管理与监控的最佳方法
【5月更文挑战第7天】本文探讨了Docker容器的日志管理与监控,强调其在运维中的重要性。Docker默认使用`json-file`日志驱动,可通过`docker logs`命令查看。建议选择合适日志驱动,配置日志选项,并集成ELK Stack等工具进行高级分析。实时监控、设置警报、分析数据和审计日志是实践关键。最佳实践包括日志数据与容器数据分离、使用日志代理、保护敏感信息及遵守法规。关注新技术以提升系统稳定性和安全性。
897 10
【Docker专栏】Docker日志管理与监控的最佳方法

相关产品

  • 日志服务