配置 Amazon SNS 通知
在联系点中使用 Amazon SNS 集成将告警通知发送到 SNS 主题。然后,配置 SNS 主题以将通知转发到 SNS 账户中使用的不同订阅通道。
开始之前
开始之前,请确保您具备以下条件
- AWS SNS 主题:用于发送通知的 SNS 主题。
- 具有必要访问权限的 AWS IAM 身份:具有将消息发布到 SNS 主题所需权限的 IAM 身份(例如用户、角色)。
对于最低配置,请参考使用 Access Key 的示例。
为联系点配置 Amazon SNS
要创建包含 SNS 集成的联系点,请完成以下步骤。
- 导航到 告警和 IRM -> 告警 -> 联系点。
- 点击 + 添加联系点。
- 输入联系点的名称。
- 从 集成 列表中,选择 AWS SNS。
- 设置您的 SNS 配置所需的设置。
- 点击 保存联系点。
有关联系点的更多详细信息,包括如何测试和启用通知,请参考配置联系点。
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 Key
和Secret Key
或同时留空。如果留空,Grafana 将使用默认凭证链搜索凭证,包括环境变量(
AWS_ACCESS_KEY_ID
和AWS_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 ARN
或Target ARN
指定一个值。 - Target ARN:(可选) 如果消息通过移动通知发送,则为移动平台端点 ARN。如果您未指定此值,则必须为
SNS topic ARN
或电话号码
指定一个值。 - 主题:(可选) 自定义主题。此字段支持通知模板并且默认使用默认标题模板(
default.title
)。它不能为空字符串。 - 消息:(可选) 自定义消息。此字段支持通知模板并且默认使用默认消息模板(
default.message
)。 - 属性:(可选) 添加任何 SNS 消息属性。
使用 Access Key 的示例
本节概述了使用告警配置 Amazon SNS 的最低配置。
1. 创建 SNS 主题和电子邮件订阅者
在 AWS 控制台中导航到 SNS:
创建新主题:
- 在 主题 页面上,选择 “创建主题”。
- 选择 “标准” 作为类型。
- 输入 名称 作为您的主题名称,例如
My-Topic
。 - 加密:对于此最低配置,请保持禁用。
- 点击 “创建主题”。
(可选) 添加电子邮件订阅者以帮助测试
- 在您刚创建的主题中,点击 “创建订阅”。
- 协议:选择
Email
。 - 终端节点:输入您的电子邮件地址以接收测试通知。
- 点击 “创建订阅”。
- 确认订阅:检查您的电子邮件,然后点击提供的链接确认订阅。
2. 创建 IAM 策略、用户和 Access Key
在 AWS 控制台中导航到 IAM:
- 转到IAM 控制台。
创建新策略:
在 策略 页面上,选择 “创建策略”。
切换到 “JSON” 选项卡并粘贴以下策略,将
Resource
替换为您的 SNS 主题 ARN{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sns:Publish", "sns:GetTopicAttributes"], "Resource": "arn:aws:sns:<region>:<account_id>:<topic_name>" } ] }
点击 “下一步”,命名(例如,
SNSPublishPolicy
),然后点击 “创建策略”。
创建新的 IAM 用户并分配策略
- 在 IAM 控制台中,在 用户 页面上,选择 “创建用户”。
- 输入 用户名,例如
alerting-sns-user
。 - 点击 “下一步”。
- 在 设置权限 中,选择 “直接附加策略”。
- 搜索您之前创建的策略(
SNSPublishPolicy
)并选择它。 - 点击 “下一步” ,然后点击 “创建用户”。
创建 Access Key:
- 在您刚创建的用户中,点击 “创建 Access Key”。
- 选择合适的用例,例如,
在 AWS 外部运行的应用程序
。 - 点击 “下一步” ,然后点击 “创建 Access Key”。
- 保存凭证:记下下一步需要用到的 Access key ID 和 Secret access key。
3. 在 Grafana 中配置 SNS 联系点
按照为联系点配置 Amazon SNS 中的步骤,使用以下设置并用前一步中创建的 SNS 和 IAM 值替换占位符。
- Amazon SNS API URL:
https://sns.<region>.amazonaws.com
- 签名版本 (sigv4):
- 区域:
<region>
- Access Key:
<YOUR_ACCESS_KEY>
。 - Secret Key:
<YOUR_SECRET_ACCESS_KEY>
- 区域:
- SNS topic ARN:
arn:aws:sns:<region>:<account_id>:<topic_name>