

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

# 在 Amazon Managed Service for Prometheus 中创建警报管理器配置以管理和路由警报
<a name="AMP-alertmanager-config"></a>

要在 Amazon Managed Service for Prometheus 中使用警报管理器和模板，您需要创建警报管理器配置 YAML 文件。Amazon Managed Service for Prometheus 警报管理器文件分为两个主要部分：
+ `template_files:` 包含用于接收方发送的消息的模板。有关更多信息，请参阅 Prometheus 文档中的 [Template Reference](https://prometheus.io/docs/prometheus/latest/configuration/template_reference/) 和 [Template Examples](https://prometheus.io/docs/prometheus/latest/configuration/template_examples/)。
+ `alertmanager_config:` 包含警报管理器配置。它使用的结构与独立的 Prometheus 中的警报管理器配置文件相同。有关更多信息，请参阅 Alertmanager 文档中的 [Configuration](https://prometheus.io/docs/alerting/latest/configuration/)。
**注意**  
以上 Prometheus 文档中所述的 `repeat_interval` 配置在 Amazon Managed Service for Prometheus 中还有一个额外的限制。允许的最大值为五天。如果您将其设置为高于五天，则会将其视为五天，并且将在五天期限过后再次发送通知。

**注意**  
您也可以直接在 Amazon Managed Service for Prometheus 控制台中编辑配置文件，但仍必须遵循此处指定的格式。有关上传或编辑配置文件的更多信息，请参阅[将您的警报管理器配置文件上传到 Amazon Managed Service for Prometheus](AMP-alertmanager-upload.md)。

在 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 }}
```