Skip to content

关于本页

本页介绍更夫所基于的开源内核 Keep 的通用能力。更夫在其上提供国内化增强:钉钉/企业微信/飞书通知、国产大模型接入、LDAP 认证与值班管理。部署与上手请看快速上手。

Keep 关联引擎是一个多功能工具,用于将告警关联和合并为事件或事件候选。 本指南解释有效使用规则引擎的核心概念、使用方法和最佳实践。

核心概念 ​

  • 规则定义:规则是满足时创建事件或事件候选的条件集合。
  • 告警属性:这些是告警的特征或数据点,如来源、严重程度或告警可能具有的任何属性。
  • 条件和逻辑:规则是通过基于告警属性定义条件来构建的,使用逻辑运算符(如 AND/OR)组合多个条件。

创建关联规则 ​

创建规则涉及定义告警应被分类或操作应被分组的条件。

  1. 访问关联引擎:导航到 Keep 平台中的关联部分。
  2. 定义规则条件:
    • 命名规则:分配一个反映其用途的描述性名称。
    • 设置条件:使用告警属性创建条件。例如,规则可能指定严重程度为"critical"且来源为"Prometheus"的告警应被分类为"高优先级"。
    • 逻辑分组:使用逻辑运算符组合条件以形成综合规则。
    • 手动批准:创建事件候选或完整事件。

动态事件命名 ​

关联引擎支持基于告警属性的动态事件命名。这允许您创建更有意义且与上下文相关的事件名称,以反映实际的告警数据。

模板变量 ​

您可以使用 {{ alert.attribute }} 语法在事件名称中使用模板变量。这些变量将替换为告警中的实际值。例如:

  • {{alert.labels.host}} - 引用告警标签中的主机
  • {{alert.service}} - 引用告警中的服务名称

多个告警的行为 ​

当事件包含多个告警时:

  • 所有告警中的值会自动用逗号连接
  • 重复值会自动去重
  • 如果新告警添加了唯一值,事件名称会更新以包含它

动态名称示例 ​

模板: "{{alert.labels.host}} 上的服务问题"

第一个告警

{
  ...
  {
    "labels": {
      "host": "host1"
    }
  }
  ...
}

第二个告警

{
  ...
  {
    "labels": {
      "host": "host2"
    }
  }
  ...
}

事件名称

Service Issue on host1,host2

示例 ​

  • 基于指标的告警:构建规则以精确定位与特定指标相关的告警,如服务器上的高 CPU 使用率。这可以通过将共享共同属性(如"CPU 使用率"标签)的告警分组来实现,确保您快速识别和解决性能问题。
  • 与功能相关的告警:建立规则以根据特定功能或服务创建事件。例如,您可以根据"服务"或"URL"标签发起事件。这种方法对于跟踪和管理与应用内不同功能或组件相关的告警特别有用。
  • 基于团队的告警管理:根据团队职责实施规则来创建事件。这可能涉及根据特定团队监督的系统或服务进行分组。这种策略确保告警能够及时定向到适当的团队,提高响应时间和效率。

基于 MIT 协议开源的 Keep · 由更夫社区维护