Link Search Menu Expand Document Documentation Menu

通知

通知插件为 OpenSearch 插件中的所有通知提供了一个中心位置。使用该插件,您可以配置要使用的通信服务,并查看相关的统计数据和故障排除信息。目前,告警和 ISM 插件已与通知插件集成。

您可以使用 OpenSearch Dashboards 或 REST API 配置通知。Dashboards 提供了一种更组织化的方式来选择通道类型和要使用的 OpenSearch 插件源,而 REST API 允许您以编程方式定义通知通道,以便更好地进行版本控制和后续重用。

  1. 首先使用 Dashboards UI 创建一个接收来自其他插件通知的通道。支持的通信通道包括 Amazon Chime、Amazon Simple Notification Service (Amazon SNS)、Amazon Simple Email Service (Amazon SES)、通过 SMTP 发送电子邮件、Slack、Microsoft Teams 和自定义 Webhook。配置好通道和插件源后,即可发送消息并从通知插件的仪表板开始跟踪您的通知。

  2. 使用通知 REST API 配置所有通道设置。要使用 API,您必须具备通知的名称、描述、通道类型、要用作源的 OpenSearch 插件,以及其他相关的 URL 或组。

创建通道

在 OpenSearch Dashboards 中,选择 Notifications(通知)、Channels(通道),然后选择 Create channel(创建通道)。

  1. 名称和描述部分,为您的通道指定名称和可选描述。
  2. 配置部分,选择通道类型并为每种类型输入必要的信息。有关配置使用 Amazon SNS 或电子邮件的通道的更多信息,请参阅以下部分。如果您想使用 Amazon Chime 或 Slack,需要指定 Webhook URL。有关使用 Webhook 的更多信息,请参阅 SlackMicrosoft TeamsAmazon Chime 的文档。

如果要使用自定义 Webhook,必须指定更多信息:参数和标头。例如,如果您的端点需要基本身份验证,您可能需要添加一个带有授权密钥和值 Basic <Base64-encoded-credential-string> 的标头。您可能还需要将 Content-Type 更改为您的 Webhook 所需的任何值。常见值为 application/jsonapplication/xmltext/plain

此信息以纯文本形式存储在 OpenSearch 集群中。我们将在未来改进此设计,但目前,编码凭据(既未加密也未哈希)可能对其他 OpenSearch 用户可见。

  1. 可用性部分,选择要与通知通道一起使用的 OpenSearch 插件。
  2. 选择 Create

Amazon SNS 作为通道类型

OpenSearch 支持将 Amazon SNS 用于通知。与 Amazon SNS 的集成意味着,除了其他通道类型外,通知插件还可以使用 SNS 主题发送电子邮件、短信,甚至运行 AWS Lambda 函数。有关 Amazon SNS 的更多信息,请参阅 Amazon Simple Notification Service 开发人员指南

通知插件目前支持两种用户身份验证方式

  1. 为用户提供对 Amazon SNS 的完全访问权限。
  2. 允许用户承担具有访问 Amazon SNS 权限的 AWS Identity and Access Management (IAM) 角色。配置通知通道以使用正确的 Amazon SNS 权限后,选择可以触发通知的 OpenSearch 插件。

提供完整的 Amazon SNS 访问权限

如果要向 IAM 用户提供完整的 Amazon SNS 访问权限,请确保该用户具有以下权限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "sns:*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

承担具有 Amazon SNS 权限的 IAM 角色

如果您希望用户在不直接拥有 Amazon SNS 完全权限的情况下发送通知,请让用户承担具有必要权限的角色。

IAM 用户必须具有以下权限才能承担角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "iam:ListRoles",
        "sts:AssumeRole"
      ],
      "Resource": "*"
    }
  ]
}

然后将此策略添加到 IAM 用户的信任关系中,以实际承担该角色:

{
  "Version": "2012-10-17",
  "Statement": [
  {
    "Effect": "Allow",
    "Principal": {
    "AWS": "arn:aws:iam::<arn_number>:user/<iam_username>",
    },
    "Action": "sts:AssumeRole"
  }
  ]
}

主机拒绝列表

定义 OpenSearch 节点不应发起请求的 IP 范围或主机名。

电子邮件作为通道类型

要通过电子邮件发送或接收通知,请选择通道类型为电子邮件。接下来,选择至少一个发件人和默认收件人。要一次向多人发送通知,请指定多个电子邮件地址或选择一个收件人组。如果通知插件目前没有必要的发件人或组,您可以首先选择SMTP 发件人,然后选择创建 SMTP 发件人创建收件人组来添加它们。选择SES 发件人以使用 Amazon Simple Email Service (Amazon SES)。

创建电子邮件发件人

  1. 指定与发件人关联的唯一名称。
  2. 输入电子邮件地址,以及适用的主机(例如,smtp.gmail.com)和端口。如果您使用 Amazon SES,请输入要从中发送通知的 AWS 账户的 IAM 角色 Amazon 资源名称 (ARN) 以及 AWS 区域。
  3. 选择加密方法。大多数电子邮件提供商需要安全套接字层 (SSL) 或传输层安全 (TLS),这需要在 OpenSearch 密钥库中提供用户名和密码。有关更多信息,请参阅验证发件人账户。选择加密方法仅适用于您正在创建 SMTP 发件人的情况。
  4. 选择创建以保存配置并创建发件人。您可以在将凭据添加到 OpenSearch 密钥库之前创建发件人;但是,在使用发件人进行通道配置之前,您必须验证每个发件人账户

创建电子邮件收件人组

  1. 选择创建收件人组后,输入与电子邮件组关联的唯一名称和可选描述。
  2. 选择或输入您要添加到收件人组的电子邮件地址。
  3. 选择 Create

验证发件人账户

如果您的电子邮件提供商需要 SSL 或 TLS,您必须在发送电子邮件之前验证每个发件人账户。使用命令行界面 (CLI) 在 OpenSearch 密钥库中输入发件人账户凭据。运行以下命令(在您的 OpenSearch 目录中)输入您的用户名和密码。 是您之前为发件人输入的名称。

/usr/share/opensearch/bin/opensearch-keystore add opensearch.notifications.core.email.<sender_name>.username
/usr/share/opensearch/bin/opensearch-keystore add opensearch.notifications.core.email.<sender_name>.password

要更改或更新您的凭据(在将它们添加到每个节点的密钥库后),请调用 reload API 自动更新这些凭据,而无需重新启动 OpenSearch。

POST _nodes/reload_secure_settings
{
  "secure_settings_password": "1234"
}

相关文章