本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon 托管服务中创建警报管理器配置,让 Prometheus 管理和发送警报
要在 Amazon Managed Service for Prometheus 中使用警报管理器和模板,您需要创建警报管理器配置 YAML 文件。Amazon Managed Service for Prometheus 警报管理器文件分为两个主要部分:
-
template_files:
包含用于接收方发送的消息的模板。有关更多信息,请参阅 Prometheus 文档中的 Template Reference和 Template 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 }}