告警简介
无论您是刚开始使用 Grafana 告警,还是更经验丰富的用户,都可以了解有关基本原理和可用功能的更多信息,这些功能可以帮助您创建、管理和响应告警;并提高团队快速解决问题的能力。
提示
有关实践操作的介绍,请参阅我们的 Grafana 告警入门教程。
下图概述了 Grafana 告警,并向您介绍了一些基本功能,这些功能是 Grafana 告警工作原理的基础。
概览工作原理
- Grafana 告警定期查询数据源并评估告警规则中定义的条件
- 如果条件被违反,将触发一个告警实例
- 触发(和已解决)的告警实例将发送用于通知,可以是直接发送到联系点,也可以通过通知策略发送,以获得更高的灵活性
基本原理
以下概念是您了解 Grafana 告警工作原理的关键。
告警规则
一个 告警规则 包含一个或多个查询和表达式,用于选择要测量的數據。它还包含一个条件,即告警规则必须满足或超过才能触发的阈值。
在告警规则中,选择联系点或通知策略来确定如何接收告警通知。
告警实例
每个告警规则都可以生成多个告警实例(也称为告警) - 每个时间序列一个告警实例。这非常强大,因为它允许您在一个表达式中观察多个序列。
sum by(cpu) (
rate(node_cpu_seconds_total{mode!="idle"}[1m])
)
使用上面 PromQL 表达式的规则会创建与第一次评估后 CPU 数量一样多的告警实例,使单个规则能够报告每个 CPU 的状态。
告警规则会经常评估,并相应地更新其告警实例的状态。只有处于触发或已解决状态的告警实例才会在通知中发送。
联系点
联系点 确定通知消息以及通知发送的位置。例如,您可能有一个联系点将通知发送到电子邮件地址、Slack、事件管理系统 (IRM)(如 Grafana OnCall 或 Pagerduty)或 Webhook。
在告警规则中,您可以选择一个联系点来接收告警通知,或者使用通知策略。
通知策略
通知策略 提供了一种灵活的方法来处理大型系统的告警通知。
通知策略通过标签匹配将告警路由到联系点。每个通知策略都包含一组标签匹配器(0 个或多个),指定它们处理哪些告警实例(通过其标签标识)。通知策略以树状结构定义,其中通知策略树的根是默认通知策略,它确保所有告警实例都得到处理。
每个通知策略都会决定将告警发送到哪里(联系点)以及何时发送通知(时间选项)。此外,它可以 将多个触发的告警实例分组到单个通知中,以减少告警噪音。
静默和静默时间
静默 和 静默时间 允许您暂停特定告警甚至整个通知策略的通知。使用静默以临时暂停通知,例如在维护窗口期间;并使用静默时间在定期时间段内暂停通知,例如晚上和周末。
架构
Grafana 告警建立在 Prometheus 的告警系统设计模型之上。基于 Prometheus 的告警系统具有两个主要组件
- 一个告警生成器,它评估告警规则并将触发和已解决的告警发送到告警接收器。
- 一个告警接收器(也称为 Alertmanager),它接收告警并负责处理它们以及发送它们的通知。
Grafana 告警不使用 Prometheus 作为其默认告警生成器,因为它可以与许多其他数据源一起工作,而不仅仅是 Prometheus。
但是,Grafana 也可以使用 Prometheus 作为告警生成器(参见 告警规则类型),以及外部 Alertmanagers。
设计您的告警系统
监控复杂的 IT 系统并了解一切是否正常运行是一项艰巨的任务。因此,设置有效的告警管理系统对于在问题影响您的业务成果之前通知您至关重要。
设计和配置一个有效的告警管理设置需要时间。
以下是一些关于如何为您的企业创建有效的告警管理设置的技巧
您想要监控和告警的业务关键指标有哪些?
找到需要了解的事件,不要太琐碎或过于频繁以至于接收者会忽略它们。
只有在需要立即关注或干预的重要事件时才创建告警。
考虑质量而不是数量。
您想要使用哪种类型的告警?
- 在 Grafana 管理的告警或 Grafana Mimir 或 Loki 管理的告警之间进行选择;或两者兼而有之。
您想要如何组织您的告警和通知?
- 选择性地设置接收告警的人员。考虑将告警发送给值班人员或特定的 Slack 频道。
- 尽可能使用告警 API 或告警即代码 (Terraform) 进行自动化。
如何减少告警疲劳?
- 通过使用静默、静默时间或暂停告警规则评估来避免噪声、不必要的告警。
- 持续调整您的告警规则以审查其有效性。删除告警规则以避免重复或无效的告警。
- 仔细考虑优先级和严重程度级别。
- 持续审查您的阈值和评估规则。