在 Amazon 托管服务中创建警报管理器配置,让 Prometheus 管理和发送警报 - Amazon Managed Service for Prometheus

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon 托管服务中创建警报管理器配置,让 Prometheus 管理和发送警报

要在 Amazon Managed Service for Prometheus 中使用警报管理器和模板,您需要创建警报管理器配置 YAML 文件。Amazon Managed Service for Prometheus 警报管理器文件分为两个主要部分:

  • template_files: 包含用于接收方发送的消息的模板。有关更多信息,请参阅 Prometheus 文档中的 Template ReferenceTemplate Examples

  • alertmanager_config: 包含警报管理器配置。它使用的结构与独立的 Prometheus 中的警报管理器配置文件相同。有关更多信息,请参阅 Alertmanager 文档中的 Configuration

    注意

    以上 Prometheus 文档中所述的 repeat_interval 配置在 Amazon Managed Service for Prometheus 中还有一个额外的限制。允许的最大值为五天。如果您将其设置为高于五天,则会将其视为五天,并且将在五天期限过后再次发送通知。

注意

您也可以直接在适用于 Prometheus 的亚马逊托管服务控制台中编辑配置文件,但它仍必须遵循此处指定的格式。有关上传或编辑配置文件的更多信息,请参阅将您的警报管理器配置文件上传到适用于 Prometheus 的亚马逊托管服务

在 Amazon Managed Service for Prometheus 中,您的警报管理器配置文件必须将所有警报管理器配置内容包含在 YAML 文件根目录的 alertmanager_config 密钥中。

以下是警报管理器配置文件基本示例:

alertmanager_config: | route: receiver: 'default' receivers: - name: 'default' sns_configs: - topic_arn: arn:aws:sns:us-east-2:123456789012:My-Topic sigv4: region: us-east-2 attributes: key: key1 value: value1

目前支持的唯一接收方是 Amazon Simple Notification Service (Amazon SNS)。如果配置中列出了其它类型的接收方,则该接收方将被拒绝。

这是另一个同时使用 template_files 数据块和 alertmanager_config 数据块的警报管理器配置文件示例。

template_files: default_template: | {{ define "sns.default.subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]{{ end }} {{ define "__alertmanager" }}AlertManager{{ end }} {{ define "__alertmanagerURL" }}{{ .ExternalURL }}/#/alerts?receiver={{ .Receiver | urlquery }}{{ end }} alertmanager_config: | global: templates: - 'default_template' route: receiver: default receivers: - name: 'default' sns_configs: - topic_arn: arn:aws:sns:us-east-2:accountid:My-Topic sigv4: region: us-east-2 attributes: key: severity value: SEV2

默认 Amazon SNS 模板数据块

除非您明确覆盖以下模板,否则默认 Amazon SNS 配置将使用以下模板。

{{ define "sns.default.message" }}{{ .CommonAnnotations.SortedPairs.Values | join " " }} {{ if gt (len .Alerts.Firing) 0 -}} Alerts Firing: {{ template "__text_alert_list" .Alerts.Firing }} {{- end }} {{ if gt (len .Alerts.Resolved) 0 -}} Alerts Resolved: {{ template "__text_alert_list" .Alerts.Resolved }} {{- end }} {{- end }}