在Alertmanager中配置告警邮件发送给多人,通常需要在Alertmanager的配置文件中指定一个或多个收件人列表,这些列表可以包含多个电子邮件地址。以下是一个配置示例,展示了如何设置Alertmanager以向多个收件人发送告警邮件:

alertmanager.yml

global:
  resolve_timeout: 5m

route:
  group_by: ['alertname', 'cluster', 'service']  # 可根据实际情况调整分组策略
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 1h

  receiver: 'team-email'

receivers:
- name: 'team-email'
  email_configs:
  - to: 'user1@example.com,user2@example.com,user3@example.com'  # 直接列出多个收件人
    # 或者使用逗号分隔的列表
    # to: 'team-alerts@example.com,devops@example.com,management@example.com'

    from: 'alertmanager@example.com'
    smarthost: 'smtp.example.com:587'
    auth_username: 'alertmanager-user'
    auth_password: 'secret-password'
    auth_identity: 'alertmanager@example.com'
    tls_config:
      insecure_skip_verify: false  # 根据实际情况配置是否跳过TLS验证

    headers:
      Subject: '[ALERT] {{ .Status | toUpper }}: {{ .GroupLabels.alertname }}'
      Importance: 'high'
    html: |
      <html>
        <body>
          <h1>{{ .Status }}: {{ .GroupLabels.alertname }}</h1>
          <p>Summary: {{ .CommonAnnotations.summary }}</p>
          <p>Description: {{ .CommonAnnotations.description }}</p>
          <p>Details:</p>
          <ul>
            {{ range .Alerts }}
              <li>
                <strong>Instance:</strong> {{ .Labels.instance }}
                <br>
                <strong>Severity:</strong> {{ .Labels.severity }}
                <br>
                <strong>Value:</strong> {{ .Annotations.value }}
              </li>
            {{ end }}
          </ul>
        </body>
      </html>

    # 可以添加多个邮件配置块,每个块对应不同的收件人列表
    # - to: 'oncall@example.com'
    #   cc: 'secondary-oncall@example.com'
    #   bcc: 'archive@example.com'
    #   ...

在这个示例中:

  • global 部分设置了全局的告警处理超时时间。
  • route 部分定义了告警路由规则,包括告警分组、等待时间、重发间隔等。
  • receiver 指定了默认的接收器,即team-email
  • receivers 部分,定义了一个名为 team-email 的接收器,它包含了多个 email_configs
  • to 字段直接列出了多个收件人的电子邮件地址,用逗号分隔。这些收件人都会收到同一封告警邮件。
  • 其他字段如 fromsmarthostauth_username 等配置了SMTP服务器连接的相关信息,以便Alertmanager能够通过SMTP发送邮件。
  • headershtml 字段用于自定义邮件的主题和正文格式,可以使用模板语法来插入告警的具体信息。

如果需要向不同团队或角色发送不同类型的告警,可以定义多个接收器,每个接收器包含其对应的邮件配置,或者在单个接收器内添加多个邮件配置块,每个块针对不同的收件人列表。这样,当告警匹配到相应的路由规则时,就会按照配置发送邮件给相应的收件人。

请确保替换上述示例中的电子邮件地址、SMTP服务器信息以及认证凭据为实际有效的值,并根据您的邮件服务商要求调整TLS配置和其他相关设置。在应用配置变更后,重启Alertmanager服务以使新的邮件发送配置生效。