接收器配置

Alertmanager Config Secret 包含一个 Alertmanager 实例的配置,该实例根据它从 Prometheus 收到的告警发出通知。

本节假设你熟悉监控组件如何协同工作。关于 Alertmanager 的更多信息,请参阅本节。

在 Rancher UI 中创建接收器

从 v2.5.4 版起可用

前提条件:

  • 需要安装监控应用程序。
  • 如果你使用现有的 Alertmanager Secret 配置监控,则它必须具有 Rancher UI 支持的格式。否则,你只能直接修改 Alertmanager Secret 来进行更改。注意:我们正在继续增强可以使用路由和接收器 UI 来支持哪些类型的 Alertmanager 配置,所以如果你有一个功能增强的请求,请提交一个问题

要在 Rancher UI 中创建通知接收器:

  1. 点击集群资源管理器>监控,并点击接收器
  2. 为接收器输入一个名称。
  3. 为接收器配置一个或多个 provider。关于填写表格的帮助,请参考下面的配置选项。
  4. 单击创建

结果:告警可以被配置为向接收器发送通知。

接收器配置

通知集成是通过 receiver 来配置的,这在 Prometheus 文档中有说明。

本地与非本地接收器

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

对于 AlertManager 不支持的通知机制,可以使用 webhook 接收器实现集成。提供这种集成的第三方驱动列表可以在这里通过 Alerting Drivers 应用程序提供对这些驱动及其相关集成的访问。启用后,配置非本地接收器也可以通过 Rancher UI 完成。

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

Rancher v2.5.8 的变化

Rancher v2.5.8 在 Rancher UI 中增加了 Microsoft Teams 和 SMS 作为可配置的接收器。

Rancher v2.5.4 的变化

Rancher v2.5.4 引入了通过在 Rancher UI 中填写表格来配置接收器的功能。

Rancher v2.5.8+

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

自定义接收器选项可用于在 YAML 中配置 Rancher UI 中不支持的接收器。

Slack

字段类型描述
URLString输入你的 Slack webhook URL。关于创建 Slack webhook 的说明,请参见Slack 文档。
默认 ChannelString输入你想发送告警通知的频道名称,格式如下。#<channelname>
Proxy URLStringWebhook 通知的代理。
启用 发送已解决的告警Bool如果告警已经解决,是否要发送后续通知(例如:[已解决]高 CPU 使用率)。

Email

字段类型描述
默认收件人地址String接收通知的电子邮件地址。
启用发送已解决的告警Bool如果告警已经解决,是否发送后续通知(例如:[已解决]高 CPU 使用率)。

SMTP 选项:

字段类型描述
发件人String输入你的 SMTP 邮件服务器上可用的电子邮件地址,你想从那里发送通知。
HostString输入你的 SMTP 服务器的 IP 地址或主机名。例如:smtp.email.com
使用 TLSBool使用 TLS 进行加密。
用户名String输入一个用户名来验证 SMTP 服务器。
密码String输入密码来验证 SMTP 服务器的身份。

PagerDuty

字段类型描述
集成类型StringEvents API v2Prometheus
默认集成密钥String获取集成密钥的说明,请参阅PagerDuty 文档。
Proxy URLStringPagerDuty 通知的 Proxy。
启用发送已解决的告警Bool如果告警已经解决,是否要发送后续通知(例如:[Resolved] High CPU Usage)。

Opsgenie

字段描述
API 密钥关于获取 API 密钥的说明,请参考Opsgenie 文档。
Proxy URLOpsgenie 通知的 Proxy。
启用发送已解决的告警如果告警已经解决,是否发送后续通知(例如:[已解决]高 CPU 使用率)。

Opsgenie 响应者:

字段类型描述
类型String时间表,团队,用户,或升级。关于告警响应者的更多信息,请参考Opsgenie 文档。
发送给StringOpsgenie 接收器的 ID、名称或用户名。

Webhook

字段描述
URL您选择的应用程序的 Webhook URL。
Proxy URLWebhook 通知的 Proxy。
启用发送已解决的告警如果告警已经解决,是否发送后续通知(例如:[已解决]高 CPU 使用率)。

自定义

这里提供的 YAML 将被直接附加到你的 Alertmanager Config Secret 中的接收器上。

Teams

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

Teams 接收器不是一个本地接收器,必须在使用前启用。你可以为 Rancher 管理的集群启用 Teams 接收器,方法是进入应用程序页面,安装选择 Teams 选项的 rancher-alerting-drivers 应用程序。

  1. 在 Rancher UI 中,进入你想安装 rancher-alerting-drivers 的集群,点击Cluster Explorer
  2. 单击Apps
  3. 点击Alerting Drivers应用程序。
  4. 单击Helm Deploy Options标签
  5. 选择Teams选项并点击Install
  6. 注意使用的命名空间,在后面的步骤中需要它。

配置 Teams 接收器

Teams 接收器可以通过更新其 ConfigMap 进行配置。例如,下面是一个最小的 Teams 接收器配置。

  1. [Microsoft Teams]
  2. teams-instance-1: https://your-teams-webhook-url

Copy

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

使用下面的例子作为 URL:

  • ns-1被替换为rancher-alerting-drivers应用程序所安装的命名空间
  1. url: http://rancher-alerting-drivers-prom2teams.ns-1.svc:8089/v2/teams-instance-1

Copy

SMS

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

SMS 接收器不是一个本地接收器,在使用之前必须先启用它。你可以为 Rancher 管理的集群启用 SMS 接收器,方法是进入应用程序页面,安装 rancher-alerting-drivers 应用程序并选择 SMS 选项。

  1. 在 Rancher UI 中,进入你想安装 rancher-alerting-drivers 的集群,点击Cluster Explorer
  2. 单击Apps
  3. 点击Alerting Drivers应用程序。
  4. 单击Helm Deploy Options标签
  5. 选择SMS选项并点击Install
  6. 注意使用的命名空间,在后面的步骤中需要它。

配置 SMS 接收器

SMS 接收器可以通过更新其 ConfigMap 进行配置。例如,下面是一个最小的 SMS 接收器配置:

  1. providers:
  2. telegram:
  3. token: "your-token-from-telegram"
  4. receivers:
  5. - name: "telegram-receiver-1"
  6. provider: "telegram"
  7. to:
  8. - "123456789"

Copy

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

使用下面的例子作为名称和 URL:

  • 分配给接收器的名称,如telegram-receiver-1,必须与 ConfigMap 中receivers.name字段中的名称一致,如telegram-receiver-1
  • URL 中的ns-1被替换为安装rancher-alerting-drivers应用程序的命名空间
  1. name: telegram-receiver-1
  2. url http://rancher-alerting-drivers-sachet.ns-1.svc:9876/alert

Copy

Rancher v2.5.4-2.5.7

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

Custom 接收器选项可用于在 YAML 中配置任何无法通过填写 Rancher UI 中的其他表格进行配置的接收器。

Slack {#slack-254-257 }

字段类型描述
URLString输入你的 Slack webhook URL。关于创建 Slack webhook 的说明,请参见Slack 文档。
默认频道String输入你想发送告警通知的频道名称,格式如下。#<channelname>
Proxy URLStringWebhook 通知的 Proxy。
启用 发送已解决的告警Bool如果告警已经解决,是否要发送后续通知(例如:[已解决]高 CPU 使用率)。

Email

字段类型描述
默认收件人地址String将会收到通知的电子邮件地址。
启用发送已解决的告警Bool如果告警已经解决,是否发送后续通知(例如:[已解决]高 CPU 使用率)。

SMTP 选项:

字段类型描述
发件人String输入你的 SMTP 邮件服务器上可用的电子邮件地址,你想从那里发送通知。
HostString输入你的 SMTP 服务器的 IP 地址或主机名。例如:smtp.email.com
使用 TLSBool使用 TLS 进行加密。
用户名String输入一个用户名来验证 SMTP 服务器。
密码String输入密码来验证 SMTP 服务器的身份。

PagerDuty

字段类型描述
集成类型StringEvents API v2Prometheus
默认集成密钥String获取集成密钥的说明,请参阅PagerDuty 文档。
Proxy URLStringPagerDuty 通知的 Proxy。
启用发送已解决的告警Bool如果告警已经解决,是否要发送后续通知(例如:[Resolved] High CPU Usage)。

Opsgenie

字段描述
API 密钥关于获取 API 密钥的说明,请参考Opsgenie 文档。
Proxy URLOpsgenie 通知的 Proxy。
启用发送已解决的告警如果告警已经解决,是否发送后续通知(例如:[已解决]高 CPU 使用率)。

Opsgenie 响应者:

字段类型描述
类型String时间表,团队,用户,或升级。关于告警响应者的更多信息,请参考Opsgenie 文档。
发送给StringOpsgenie 接收器的 ID、名称或用户名。

Webhook

字段描述
URL您选择的应用程序的 Webhook URL。
Proxy URLwebhook 通知的 Proxy。
启用发送已解决的告警如果告警已经解决,是否发送后续通知(例如:[已解决]高 CPU 使用率)。

Custom

这里提供的 YAML 将被直接附加到你的接收器中,在 Alertmanager Config Secret 中。

Rancher v2.5.0-2.5.3

Alertmanager 必须用 YAML 进行配置,如这些例子所示。

配置多个接收器

通过编辑 Rancher UI 中的表单,你可以设置一个 Receiver 资源,其中包含 Alertmanager 向你的通知系统发送告警所需的所有信息。

也可以向多个通知系统发送告警。一种方法是使用自定义 YAML 来配置 Receiver,在这种情况下,你可以为多个通知系统添加配置,只要你确定这两个系统应该接收相同的信息。

你也可以通过使用路由的 continue 选项来设置多个接收器,这样发送给一个接收器的告警会在路由树的下一级继续被评估,这一级可能包含另一个接收器。

Alertmanager 配置示例

Slack

要想通过 Slack 设置通知,可以将下面的 Alertmanager 配置 YAML 放到 Alertmanager Config Secret 的 alertmanager.yaml 键中,其中 api_url 应该被更新为使用 Slack 的 Webhook URL。

  1. route:
  2. group_by: ["job"]
  3. group_wait: 30s
  4. group_interval: 5m
  5. repeat_interval: 3h
  6. receiver: "slack-notifications"
  7. receivers:
  8. - name: "slack-notifications"
  9. slack_configs:
  10. - send_resolved: true
  11. text: '{{ template "slack.rancher.text" . }}'
  12. api_url: <user-provided slack webhook url here>
  13. templates:
  14. - /etc/alertmanager/config/*.tmpl

Copy

PagerDuty

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

下面的 Alertmanager 配置 YAML 可以放在 Alertmanager Config Secret 的alertmanager.yaml键中。service_key应该更新为使用你的 PagerDuty 集成密钥,可以根据 PagerDuty 文档的 “Integrating with Global Event Routing” 部分找到。关于配置选项的完整列表,请参考Prometheus 文档

  1. route:
  2. group_by: [cluster]
  3. receiver: "pagerduty-notifications"
  4. group_interval: 5m
  5. routes:
  6. - match:
  7. service: database
  8. receiver: "database-notifcations"
  9. receivers:
  10. - name: "pagerduty-notifications"
  11. pagerduty_configs:
  12. - service_key: "primary-integration-key"
  13. - name: "database-notifcations"
  14. pagerduty_configs:
  15. - service_key: "database-integration-key"

Copy

用于 CIS 扫描告警的路由配置示例

在为 rancher-cis-benchmark 告警配置路由时,你可以使用键值对 job: rancher-cis-scan 来指定匹配。

例如,下面的路由配置例子可以用于名为 test-cis 的 Slack 接收器:

  1. spec:
  2. receiver: test-cis
  3. group_by:
  4. # - string
  5. group_wait: 30s
  6. group_interval: 30s
  7. repeat_interval: 30s
  8. match:
  9. job: rancher-cis-scan
  10. # key: string
  11. match_re: {}
  12. # key: string

Copy

关于为 rancher-cis-benchmark 启用告警的更多信息,请参考本节。

通知者的受信 CA

如果你需要为你的通知器添加一个受信任的 CA,请参考本节的步骤进行。