接收器配置

Alertmanager 配置 秘密包含了一个 Alertmanager 实例的配置,该实例根据从 Prometheus 接收到的警报发送通知。

本节假设您对监控组件如何协同工作有一定了解。有关 Alertmanager 的更多信息,请参见 本节。

在 Rancher UI 中创建接收器

先决条件:
  • 需要安装监控应用程序。

  • 如果您使用现有的 Alertmanager 秘密配置了监控,则必须具有 Rancher UI 支持的格式。否则,您只能通过直接修改 Alertmanager 秘密来进行更改。注意:我们正在继续增强我们可以通过 Routes 和 Receivers UI 支持的 Alertmanager 配置类型,因此如果您有功能增强的请求,请 提交问题。

  1. 转到您想要创建接收器的集群。点击 监控 -> 警报 -> AlertManagerConfigs。

  2. 单击*创建*。

  3. 为新的 AlertmanagerConfig 输入一个 名称。

  4. 单击*创建*。

  5. 创建 AlertManagerConfig 后,点击它以添加接收器。

  6. 点击*Add Receiver*。

  7. 为接收器输入一个 名称。

  8. 为接收器配置一个或多个提供者。有关填写表单的帮助,请参阅下面的配置选项。

  9. 单击*创建*。

*结果:*可以配置警报以向接收器发送通知。

接收器配置

通知集成通过 receiver 配置,具体说明见 Prometheus 文档。

本地与非本地接收器

默认情况下,AlertManager 提供与某些接收器的本地集成,这些接收器在 本节中列出。 所有本地支持的接收器都可以通过 Rancher UI 进行配置。

对于 AlertManager 不本地支持的通知机制,例如 Telegram,集成是通过 webhook 接收器。 实现的。提供此类集成的第三方驱动程序列表可以在 这里找到。 访问这些驱动程序及其相关集成是通过警报驱动程序应用程序提供的。启用后,可以通过 Rancher UI 配置非本地接收器。

目前,Rancher Alerting Drivers 应用提供以下集成的访问:

  • Microsoft Teams,基于 prom2teams 驱动程序。

  • Telegram,基于 Sachet 驱动程序。

可以在 Rancher UI 中配置以下类型的接收器:

自定义接收器选项可用于配置任何无法通过填写 Rancher UI 中其他表单来配置的接收器。

Slack

字段 类型 说明

URL

字符串

输入您的 Slack webhook URL。有关创建 Slack webhook 的说明,请参见 Slack 文档。

默认频道

字符串

输入您希望以以下格式发送警报通知的频道名称:#<channelname>。

代理 URL

字符串

Webhook 通知的代理。

启用发送已解决的警报

布尔

如果警报已解决,是否发送后续通知(例如 [已解决] 高处理器使用率)。

电子邮件

字段 类型 说明

默认接收地址

字符串

将接收通知的电子邮件地址。

启用发送已解决的警报

布尔

如果警报已解决,是否发送后续通知(例如 [已解决] 高处理器使用率)。

SMTP 选项:

字段 类型 说明

发送器

字符串

输入您希望从中发送通知的 SMTP 邮件服务器上可用的电子邮件地址。

主机

字符串

输入您的 SMTP 服务器的 IP 地址或主机名。示例:smtp.email.com。

使用 TLS

布尔

使用 TLS 进行加密。

用户名

字符串

输入用户名以通过 SMTP 服务器进行身份验证。

口令

字符串

输入密码以通过 SMTP 服务器进行身份验证。

PagerDuty

字段 类型 说明

集成类型

字符串

Events API v2 或 Prometheus。

默认集成密钥

字符串

有关获取集成密钥的说明,请参见 PagerDuty 文档。

代理 URL

字符串

PagerDuty 通知的代理。

启用发送已解决的警报

布尔

如果警报已解决,是否发送后续通知(例如 [已解决] 高 CPU 使用率)。

Opsgenie

字段 说明

API 密钥

有关获取 API 密钥的说明,请参见 Opsgenie 文档。

代理 URL

Opsgenie 通知的代理。

启用发送已解决的警报

如果警报已解决,是否发送后续通知(例如 [已解决] 高 CPU 使用率)。

Opsgenie 响应者:

字段 类型 说明

类型

字符串

计划、团队、用户或升级。有关警报响应者的更多信息,请参见 Opsgenie 文档。

发送至

字符串

Opsgenie 收件人的 ID、名称或用户名。

Webhook

字段 说明

URL

您选择的应用程序的 Webhook URL。

代理 URL

Webhook 通知的代理。

启用发送已解决的警报

如果警报已解决,是否发送后续通知(例如 [已解决] 高 CPU 使用率)。

自定义

此处提供的 YAML 将直接附加到您的 Alertmanager 配置密钥中的接收器。

小组

为 Rancher 管理的集群启用 Teams 接收器。

Teams 接收器不是本地接收器,必须在使用之前启用。您可以通过访问应用页面并安装选中 Teams 选项的 rancher-alerting-drivers 应用来为 Rancher 管理的集群启用 Teams 接收器。

  1. 在 Rancher UI 中,转到您想要安装 rancher-alerting-drivers 的集群,然后单击 应用。

  2. 单击*警报驱动程序*应用。

  3. 单击 Helm 部署选项 选项卡。

  4. 选择 Teams 选项,然后单击 安装。

  5. 请注意所使用的名称空间,因为在后续步骤中将需要它。

配置Teams接收器

  1. 要配置 Teams 接收器,请更新其 ConfigMap。以下示例是最小的 Teams 接收器配置:

     [Microsoft Teams]
     connector: https://your-teams-webhook-url
  2. 更新配置后,请按照 在 Rancher UI 中创建接收器 中的说明添加接收器。使用下面的示例来形成您的 URL。确保将`<namespace>`替换为`rancher-alerting-drivers`应用的名称空间:

     url: http://rancher-alerting-drivers-prom2teams.<namespace>.svc:8089/v2/connector

SMS

为 Rancher 管理的集群启用 SMS 接收器。

SMS接收器不是本地接收器,必须在使用之前启用。您可以通过访问应用页面并安装选中 SMS 选项的 rancher-alerting-drivers 应用来为 Rancher 管理的集群启用 SMS 接收器。

  1. 在左上角,单击*☰ > 集群管理*。

  2. 在*集群*页面上,转到您想要安装`rancher-alerting-drivers`的集群,然后单击*浏览*。

  3. 在左侧导航栏中,单击

  4. 单击*警报驱动程序*应用。

  5. 单击*Helm部署选项*选项卡

  6. 选择*SMS*选项,然后单击*安装*。

  7. 请注意所使用的名称空间,因为在后续步骤中将需要它。

配置 SMS 接收器

可以通过更新其 ConfigMap 来配置 SMS 接收器。例如,以下是最小的 SMS 接收器配置。

providers:
  telegram:
    token: 'your-token-from-telegram'

receivers:
- name: 'telegram-receiver-1'
  provider: 'telegram'
  to:
    - '123456789'

配置完成后,使用 本节 中的步骤添加接收器。

使用下面的示例作为名称和 URL,其中:

  • 分配给接收器的名称,例如 telegram-receiver-1,必须与 ConfigMap 中 receivers.name 字段的名称匹配,例如 telegram-receiver-1。

  • URL 中的 ns-1 被替换为安装 rancher-alerting-drivers 应用的名称空间。

name: telegram-receiver-1
url http://rancher-alerting-drivers-sachet.ns-1.svc:9876/alert

Telegram

为 Rancher 管理的集群启用 Telegram 接收器

Telegram 接收器不是本地接收器。您必须在使用之前启用它。您可以通过访问 Apps 页面并安装 rancher-alerting-drivers 选中 Telegram 选项的应用来为 Rancher 管理的集群启用 Telegram 接收器:

  1. 在左上角,单击*☰ > 集群管理*。

  2. 在*集群*页面上,转到您想要安装`rancher-alerting-drivers`的集群,然后单击*浏览*。

  3. 在左侧导航栏中,单击 Apps。

  4. 单击*警报驱动程序*应用。

  5. 单击 安装。

  6. 在接下来打开的页面中,确保选中 启用 SMS 复选框。Telegram 通知需要您启用 SMS。

  7. 请注意所使用的名称空间,因为在后续步骤中将需要它。

通过配置 PrometheusRule 测试配置

要测试您的 Telegram 设置,请创建一个持续触发警报的 PrometheusRule。

注意

此规则仅用于测试 Telegram 警报是否按预期工作。测试完成后,请勿将其保留。

  1. 在左侧导航菜单中,单击*监控*。

  2. 单击*高级*。

  3. 单击PrometheusRules  创建。

  4. 选择一个名称空间以放置规则,并适当地命名规则。

  5. 将组名设置为`test`。在您创建*路由*时稍后使用此值,位于*AlertManagerConfig*中。

  6. 在*告警规则*下,单击*添加*。

  7. 设置一个合适的*告警名称*。

  8. 要立即并持续触发告警,请输入以下PromQL表达式:vector(1)。

  9. 在*标签*下,单击*添加标签*。输入键`test`和值`alert`。此键值对稍后也将使用。

配置一个AlertManagerConfig。

配置一个*AlertManagerConfig*,以包含*接收器*和*路由*配置,适用于上述创建的*PrometheusRule*:

  1. 单击监控  告警,并打开*AlertManagerConfigs*。

  2. 单击*创建*。

在AlertManagerConfig中创建一个接收器。

  1. 从下拉菜单中选择一个名称空间,并设置一个合适的名称。

  2. 单击*创建*。

  3. 打开新创建的*AlertManagerConfig*,并单击*⋮ > 编辑配置*。

  4. 点击*Add Receiver*。

  5. 在*AlertmanagerConfig中创建接收器*页面上,从列表中选择*Webhook*。

  6. 命名Webhook,并单击*添加Webhook*。

  7. 在 选择 Webhook 类型 下拉菜单中,选择 短信。这将自动填充 目标 字段为 http://rancher-alerting-drivers-sachet.cattle-monitoring-system.svc:9876/alert。如果您在与 cattle-monitoring-system 不同的名称空间中安装了 告警驱动程序,目标 URL 将反映这一点。

  8. 单击*创建*。

在 AlertManagerConfig 中创建一个路由

  1. 点击*⋮ > 编辑配置*。

  2. 点击 路由。

  3. 在下拉菜单中,选择您刚刚创建的 接收器。

  4. 在 按标签分组告警 字段中,输入 test。

  5. 在 等待和间隔 下,将 组等待 设置为 1s,将 组间隔 设置为 10s。这会触发频繁的告警。根据需要更改值。

  6. 在 匹配器 下,点击 添加匹配器。在 test名称 字段中输入, 在 alert值 字段中输入。从 匹配类型 下拉菜单中,选择 MatchEqual。

  7. 单击 保存。

配置 Telegram 接收器

您可以通过更新 rancher-alerting-drivers-sachet ConfigMap 在 cattle-monitoring-system 名称空间中配置 Telegram 接收器。例如,以下是最小的 Telegram 接收器配置:

providers:
  telegram:
    token: <your-token-from-telegram>

receivers:
- name: 'cattle-monitoring-system/test-amc/prom2tel'
  provider: 'telegram'
  to:
    - '123456789'

要获取 Telegram 令牌,请设置一个 Telegram 机器人。有关详细信息,请参阅 官方 Telegram 指南。 完成接收器配置后,添加它。

将接收器命名为 <namespace>/<alertmanagerconfig-name>/<receiver-name>。将 123456789 作为占位符输入,以便将通知发送到 Telegram 用户 ID。要查找您的 Telegram ID,请查看 Telegram 用户信息机器人。

您现在应该会收到发送到用户 ID 的 Telegram 通知。如果您没有收到通知,请检查在 cattle-monitoring-system 名称空间下的部署 rancher-alerting-drivers-sachet 中是否有任何错误报告。

配置多个接收器

通过编辑 Rancher UI 中的表单,您可以设置一个接收器资源,其中包含 Alertmanager 发送警报到您的通知系统所需的所有信息。

也可以将警报发送到多个通知系统。一种方法是使用自定义 YAML 配置接收器,在这种情况下,您可以为多个通知系统添加配置,只要您确保这两个系统都应接收相同的消息。

您还可以通过为路由使用 continue 选项来设置多个接收器,以便发送到接收器的警报继续在路由树的下一个级别进行评估,该级别可能包含另一个接收器。

示例 Alertmanager 配置

Slack

要通过 Slack 设置通知,可以将以下 Alertmanager 配置 YAML 放入 Alertmanager 配置密钥的 alertmanager.yaml 中,其中 api_url 应更新为您从 Slack 获取的 Webhook URL:

route:
  group_by: ['job']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 3h
  receiver: 'slack-notifications'
receivers:
- name: 'slack-notifications'
  slack_configs:
  - send_resolved: true
    text: '{{ template "slack.rancher.text" . }}'
    api_url: <user-provided slack webhook url here>
templates:
- /etc/alertmanager/config/*.tmpl

PagerDuty

要通过 PagerDuty 设置通知,请使用以下来自 PagerDuty 文档 的示例作为指导。此示例设置了一个路由,捕获数据库服务的警报并将其发送到与将直接通知 PagerDuty 中的 DBA 的服务相关联的接收器,而所有其他警报将被定向到具有不同 PagerDuty 集成密钥的默认接收器。

以下 Alertmanager 配置 YAML 可以放入 Alertmanager 配置密钥的 alertmanager.yaml 中。service_key 应更新为使用您的 PagerDuty 集成密钥,可以根据 PagerDuty 文档的 "与全球事件路由集成" 部分找到。有关完整的配置选项列表,请参阅 Prometheus 文档。

route:
 group_by: [cluster]
 receiver: 'pagerduty-notifications'
 group_interval: 5m
 routes:
  - match:
      service: database
    receiver: 'database-notifcations'

receivers:
- name: 'pagerduty-notifications'
  pagerduty_configs:
  - service_key: 'primary-integration-key'

- name: 'database-notifcations'
  pagerduty_configs:
  - service_key: 'database-integration-key'

合规扫描警报的示例路由配置

在为 rancher-compliance 警报配置路由时,您可以使用键值对 job: rancher-compliance-scan 指定匹配。

例如,以下示例路由配置可以与名为 test-compliance 的 Slack 接收器一起使用:

spec:
  receiver: test-compliance
  group_by:
#    - string
  group_wait: 30s
  group_interval: 30s
  repeat_interval: 30s
  match:
    job: rancher-compliance-scan
#    key: string
  match_re:
    {}
#    key: string

有关启用 rancher-compliance 警报的更多信息,请参见 本节。

通知程序的受信任 CA

如果您需要向通知程序添加受信任的 CA,请按照 本节的步骤。。