SLS告警最佳实践——自定义分析告警历史

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 在SLS告警评估、触发到通知的整个生命周期过程中,都会有一些日志记录,通过这些日志我们可以借助告警对系统的整体健康状况、稳定性等有一个相对全面的了解。

概述

在SLS告警评估、触发到通知的整个生命周期过程中,都会有一些日志记录,通过这些日志我们可以借助告警对系统的整体健康状况、稳定性等有一个相对全面的了解。


在开始使用SLS告警的时候,需要选择一个地域来存储告警相关的数据,该初始化操作会自动创建一个 sls-alert-$uid-$region 形式的project,例如阿里云账号ID是 12345,选择的地域是杭州,那么默认创建出来的 project 就是 sls-alert-12345-cn-hangzhou。该 Project 下也会自动创建出来一个 internal-alert-center-log 的 LogStore,用于存放告警相关的数据,也就是告警中心日志。

注:该LogStore完全免费,并且已经默认创建索引。

之后我们就可以基于该 LogStore 进行分析。

Topic

告警中心日志根据 __topic__ 字段做区分,每个 __topic__ 表示告警处理的不同阶段。常见的 __topic__ 及其所处的阶段、以及说明如下:

__topic__

说明

alert_state

告警规则评估日志。

alert_received

告警管理服务接收到告警消息。

alert_routed

告警经过告警策略之后,进行路由合并。

alert_pre_filter

告警进入抑制静默流程。

alert_silenced

告警被抑制或者静默。

alert_pre_notify

告警进入通知发送流程

alert_notified

告警通知被发送。

system_config

配置错误,有可能导致告警通知失败。例如配置了不存在的联系人。

案例

下面通过一些案例来展示如何基于告警中心日志做自定义的查询分析。

案例一:告警触发统计

查询一段时间内,一共有多少告警触发过,以及触发的次数。

查询分析语句如下:

__topic__: alert_received |select"alert.project"as project,"alert.alert_name"as alert_name,count(*)as cnt
groupby  project,  alert_name
orderby  cnt desc

结果参考如下:

案例二:通知失败统计

统计一段时间内,各个通知渠道的失败次数。

查询分析语句如下:

__topic__: alert_notified and level: error |select"notifierConfig.type"as notificationType,count(*)as cnt
groupby  notificationType
orderby  cnt desc

案例三:通知失败原因

某告警规则没有收到通知,可通过如下方式查询失败原因。

第一步,首先查看是否有配置错误:

__topic__: system_config and alert.alert_id: alert-xxx-yyy |select level, error, msg,"desc"

如果有数据,则说明配置有问题导致无法进行通知。详细的错误说明可以参考下面表格。如果没有配置错误,那么可能是由于通知发送失败了,可以通过如下语句查询是否有通知错误:

__topic__: alert_notified and level: error and alert.alert_id: alert-xxx-yyy |select error

参考结果如下:

此时可以发现是配置的Webhook地址无效导致通知发送失败。

告警内置仪表盘

日志服务告警内置了如下几个仪表盘,用来统计告警的触发情况和通知情况。事实上,这些仪表盘也是基于告警中心日志数据来进行制作的。如果需要一些定制化的图标,也可以自己写查询语句来自定义仪表盘。

监控规则中心

监控规则中心仪表盘主要展示了告警监控规则的执行情况。

告警链路中心

告警链路中心主要包含了了告警在触发、合并、抑制静默、通知等各个阶段的统计。

告警排障中心

告警排障中心主要统计的是告警通知过程中的种种错误。比如由于配置错误导致通知无法发出。通过告警排障,选择相应的项目以及规则名,可以查看该规则相关的配置错误信息,从而快速定位通知收不到的原因。常见的配置错误参考下表。

常见配置错误

告警中心日志中,通过 __topic__: system_config 可以过滤出配置错误导致的通知异常。常见的错误参考如下:

故障级别

故障类型

故障详情

描述

详细描述

解决方案

error

AlertPolicyNotConfigured

Alert xxx has no alert policy configured

this alert will be ignored since it could not be routed

该告警规则未配置告警策略,导致该告警无法被进行路由分组,因此会被忽略。

修改告警规则,配置正确的告警策略。

error

AlertPolicyNotExist

alert policy xxx not exist

alerts that use this alert policy will be ignored

告警策略不存在,使用该告警策略的告警会被忽略。

检查该告警策略是否存在,如果不存在的话需要创建出来,或者使用其它的告警策略

error

AlertPolicyInvalid

alert policy xxx format error

alerts that use this alert policy will be ignored

告警策略格式错误,导致无法解析,使用该告警策略的告警会被忽略。

修改该告警策略的内容,或者删除重新创建。

warn

AlertPolicyInheritanceLoop

alert policy xxx has inheritance loop with yyy

inheritance loop alert policies will be ignored

告警策略集成有循环,例如 A 继承 B,B 又继承 A。在实际使用的时候,如果配置的是 A,则 B 和 A 生效;如果配置的是 B,则 A 和 B 生效。不会无限解析继承链

修改告警策略,避免有循环继承。

error

NoDefaultAlertPolicy

no default alert policy

alerts that use default alert policy will be ignored

没有配置默认告警策略。因此如果告警规则配置使用了默认告警策略,则相应的告警会被忽略。

设置默认的告警策略。

error

GroupPolicyEmpty

Group policy of alert policy xxx is empty

alerts using this alert policy will be ignored

告警策略中的分组规则为空,因此告警会被忽略。

修改告警策略中的分组规则配置,避免为空。

error

ActionPolicyNotExist

action policy xxx not exist

alerts that use default action policy will not be notified

行动策略不存在,导致使用了该行动策略的告警不会被发送。

创建相应的行动策略,或者修改告警策略中的分组规则,使用其它的行动策略。

error

ActionPolicyInvalid

action policy xxx invalid

alerts that use default action policy will not be notified

行动策略格式错误,导致使用了该行动策略的告警不会被发送。

修改相应的行动策略,或者删除后重新创建。

error

ActionPolicyEmpty

Primary(Secondary) policy for action policy xxx is empty

alerts using this action policy will not be notified

第一(第二) 行动策略为空,导致使用该行动策略的告警不会被发送。

修改相应的行动策略,确保不为空。

warn

UserNotExist

user xxx not exist

this user will not be notified

用户 xxx 不存在,该用户不会被通知。

从行动策略中去掉该用户,或者创建该用户。

warn

UserGroupNotExist

group xxx not exist

this group will not be notified

用户组 xxx 不存在,该用户组不会被通知。

从行动策略中去掉该用户组,或者创建该用户组。

warn

UserGroupEmpty

group xxx is empty

this group will not be notified

用户组 xxx 为空,因此该用户组不会被通知。

为该用户组添加用户。

warn

OncallGroupNotExist

oncall group xxx not exist

this oncall group will not be notified

值班组 xxx 不存在,因此该值班组不会被通知。

创建该值班组。

warn

ContentTemplateNotExist

content template xxx not exist

notifications that use this content template will be ignored

内容模板 xxx 不存在,因此使用了该内容模板的通知渠道会被忽略。

配置行动策略使用其它的内容模板,或者创建该内容模板。

warn

CalendarNotExist

calendar xxx not exist

oncall group that using this calendar will be ignored

日历 xxx 不存在,因此使用该日历的值班组会被忽略。

配置值班组使用其它日历,或者创建该日历。

warn

ChannelQuotaNotExist

channel quota not exist

action policies will ignore channel quota

渠道配额不存在,因此发送通知的时候会忽略 quota 限制。

创建渠道配额。

warn

ChannelQuotaInvalid

channel quota format invalid

action policies will ignore channel quota

渠道配额为空,因此会忽略 quota 限制。

修改渠道配额的内容,确保限制不为空。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
存储 分布式计算 监控
【Flume】Flume 监听日志文件案例分析
【4月更文挑战第4天】【Flume】Flume 监听日志文件案例分析
|
4月前
|
监控 Android开发 C语言
深度解读Android崩溃日志案例分析2:tombstone日志
深度解读Android崩溃日志案例分析2:tombstone日志
99 0
|
4月前
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
87 0
|
4月前
|
缓存 固态存储 关系型数据库
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
|
3天前
|
存储 监控 NoSQL
【MongoDB 专栏】MongoDB 的日志管理与分析
【5月更文挑战第11天】MongoDB日志管理与分析至关重要,包括系统日志和操作日志,用于监控、故障排查和性能优化。合理配置日志详细程度、存储位置和保留策略,使用日志分析工具提升效率,发现性能瓶颈和安全性问题。日志分析有助于优化查询、调整配置,确保数据安全,并可与其他监控系统集成。面对日志量增长的挑战,需采用新技术如分布式存储和数据压缩来保障存储和传输。随着技术发展,不断进化日志管理与分析能力,以支持MongoDB的稳定高效运行。
【MongoDB 专栏】MongoDB 的日志管理与分析
|
14天前
|
存储 监控 关系型数据库
PHP编写的电脑监控软件:用户登录日志记录与分析
使用PHP编写简单但功能强大的电脑监控软件,记录用户登录日志并进行分析。代码示例展示了如何获取并存储用户IP地址和登录时间到数据库,然后进行登录数据的分析,如计算登录频率和常见登录时间。此外,还介绍了如何通过定时任务自动将监控数据提交到网站,以便实时监控用户活动,提升系统安全性和稳定性。
44 0
|
15天前
|
数据可视化
R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化
R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化
|
19天前
|
运维 监控 Java
实战总结|系统日志规范及最佳实践
打印日志是一门艺术,日志信息是开发人员排查线上问题最主要的手段之一,但规范打日志被开发同学经常所忽视。日志就像保险,平时正常的时候用不上,但是一旦出问题就都想看有没有保险可以用。一条良好的日志,是我们向外部证明的材料。
|
20天前
|
机器学习/深度学习 前端开发 数据挖掘
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断(下)
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
223 11
|
5月前
|
存储 监控 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
179 1

相关产品

  • 日志服务