菜单
Grafana Cloud Enterprise 开源

配置 Amazon SNS 通知

在联系点中使用 Amazon SNS 集成将告警通知发送到 SNS 主题。然后,配置 SNS 主题以将通知转发到 SNS 账户中使用的不同订阅通道。

开始之前

开始之前,请确保您具备以下条件

  • AWS SNS 主题:用于发送通知的 SNS 主题。
  • 具有必要访问权限的 AWS IAM 身份:具有将消息发布到 SNS 主题所需权限的 IAM 身份(例如用户、角色)。

对于最低配置,请参考使用 Access Key 的示例

为联系点配置 Amazon SNS

要创建包含 SNS 集成的联系点,请完成以下步骤。

  1. 导航到 告警和 IRM -> 告警 -> 联系点
  2. 点击 + 添加联系点
  3. 输入联系点的名称。
  4. 集成 列表中,选择 AWS SNS
  5. 设置您的 SNS 配置所需的设置
  6. 点击 保存联系点

有关联系点的更多详细信息,包括如何测试和启用通知,请参考配置联系点

SNS 设置

  • Amazon SNS API URL:(可选) SNS API URL,例如 https://sns.us-east-2.amazonaws.com。如果未指定,将使用 SNS SDK 中的 SNS API URL。
  • 签名版本 (sigv4):配置 AWS 的 Signature Verification 4 签名流程来签署请求。
    • 区域:(可选) AWS 区域。如果为空,则使用默认凭证链中的区域。
    • Access Key :(可选) AWS API Access Key。
    • Secret Key:(可选) AWS API Secret Key。

      必须同时提供 Access KeySecret Key 或同时留空。

      如果留空,Grafana 将使用默认凭证链搜索凭证,包括环境变量(AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY)、共享凭证文件以及 EC2 实例角色。

    • Profile:(可选) 用于认证的命名 AWS Profile。
    • Role ARN:(可选) 用于认证的 AWS IAM 角色 ARN,可替代使用 AWS API 密钥。
  • SNS topic ARN:(可选) 如果您未指定此值,则必须为 电话号码Target ARN 指定一个值。如果您使用的是 FIFO SNS 主题,则应将消息分组间隔设置为长于 5 分钟,以防止具有相同分组密钥的消息被 SNS 默认的去重窗口去重。
  • 电话号码:(可选) 如果消息通过 E.164 格式的 SMS 发送,则为电话号码。如果您未指定此值,则必须为 SNS topic ARNTarget ARN 指定一个值。
  • Target ARN:(可选) 如果消息通过移动通知发送,则为移动平台端点 ARN。如果您未指定此值,则必须为 SNS topic ARN电话号码 指定一个值。
  • 主题:(可选) 自定义主题。此字段支持通知模板并且默认使用默认标题模板(default.title)。它不能为空字符串
  • 消息:(可选) 自定义消息。此字段支持通知模板并且默认使用默认消息模板(default.message)。
  • 属性:(可选) 添加任何 SNS 消息属性。

使用 Access Key 的示例

本节概述了使用告警配置 Amazon SNS 的最低配置。

1. 创建 SNS 主题和电子邮件订阅者

  1. 在 AWS 控制台中导航到 SNS:

  2. 创建新主题:

    • 主题 页面上,选择 “创建主题”
    • 选择 “标准” 作为类型。
    • 输入 名称 作为您的主题名称,例如 My-Topic
    • 加密:对于此最低配置,请保持禁用。
    • 点击 “创建主题”
  3. (可选) 添加电子邮件订阅者以帮助测试

    • 在您刚创建的主题中,点击 “创建订阅”
    • 协议:选择 Email
    • 终端节点:输入您的电子邮件地址以接收测试通知。
    • 点击 “创建订阅”
    • 确认订阅:检查您的电子邮件,然后点击提供的链接确认订阅。

2. 创建 IAM 策略、用户和 Access Key

  1. 在 AWS 控制台中导航到 IAM:

  2. 创建新策略:

    • 策略 页面上,选择 “创建策略”

    • 切换到 “JSON” 选项卡并粘贴以下策略,将 Resource 替换为您的 SNS 主题 ARN

      json
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": ["sns:Publish", "sns:GetTopicAttributes"],
            "Resource": "arn:aws:sns:<region>:<account_id>:<topic_name>"
          }
        ]
      }
    • 点击 “下一步”,命名(例如,SNSPublishPolicy),然后点击 “创建策略”

  3. 创建新的 IAM 用户并分配策略

    • 在 IAM 控制台中,在 用户 页面上,选择 “创建用户”
    • 输入 用户名,例如 alerting-sns-user
    • 点击 “下一步”
    • 设置权限 中,选择 “直接附加策略”
    • 搜索您之前创建的策略(SNSPublishPolicy)并选择它。
    • 点击 “下一步” ,然后点击 “创建用户”
  4. 创建 Access Key:

    • 在您刚创建的用户中,点击 “创建 Access Key”
    • 选择合适的用例,例如,在 AWS 外部运行的应用程序
    • 点击 “下一步” ,然后点击 “创建 Access Key”
    • 保存凭证:记下下一步需要用到的 Access key IDSecret access key

3. 在 Grafana 中配置 SNS 联系点

按照为联系点配置 Amazon SNS 中的步骤,使用以下设置并用前一步中创建的 SNS 和 IAM 值替换占位符。

  • Amazon SNS API URLhttps://sns.<region>.amazonaws.com
  • 签名版本 (sigv4):
    • 区域<region>
    • Access Key<YOUR_ACCESS_KEY>
    • Secret Key<YOUR_SECRET_ACCESS_KEY>
  • SNS topic ARNarn:aws:sns:<region>:<account_id>:<topic_name>

测试联系点以确保其正常工作,或启用通知

更多资源