在 Amazon OpenSearch Service 中配置警报 - Amazon Opensearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

在 Amazon OpenSearch Service 中配置警报

在 Amazon OpenSearch Service 中配置警报,以便在一个或多个索引中的数据满足特定条件时获得通知。例如,如果您的应用程序在一小时内记录了超过五个 HTTP 503 错误,您可能希望收到一封电子邮件;或者,如果在过去 20 分钟内未对任何新文档编制索引,您可能希望呼叫开发人员。

警报需要 OpenSearch 或 Elasticsearch 6.2 或更高版本。有关完整文档(包括 API 描述),请参阅 OpenSearch 文档。本主题重点介绍了 OpenSearch 服务中警报与开源版本相比的区别。

要开始使用警报

  1. 选择提醒从打开搜索仪表板主菜单中。

  2. 设置警报的目标。在 Slack、Amazon Chime、自定义 webhook 或 Amazon SNS 之间进行选择。正如您所想象的那样,通知需要连接到目标。例如,您的 OpenSearch Service 域必须能够连接到互联网以通知 Slack 频道或向第三方服务器发送自定义 Webhook。自定义 webhook 必须具有公有 IP 地址,OpenSearch 服务域才能向其发送警报。

  3. 通过三种方式之一创建监视器:可视化、使用查询或使用异常检测器。

  4. 定义触发监视器的条件。

  5. (可选)将一个或多个操作添加到监视器。

    提示

    操作成功发送消息后,您负责确保对该消息的访问权限(例如,访问 Slack 频道)。如果您的域包含敏感数据,请考虑使用触发器而不采取任何操作,并定期检查仪表板中的警报。

有关详细步骤,请参阅监视器(在 OpenSearch 文档中)。

区别

与开源版本的 OpenSearch 相比,Amazon OpenSearch Service 中的提醒有一些显著的差异。

Amazon SNS 支持

OpenSearch Service 支持 Amazon Simple Notification Service (Amazon SNS) 以获取通知。这一集成意味着:除了标准目标(Slack、自定义 Webhook 和 Amazon Chime)之外,提醒功能还可以发送电子邮件、短信,甚至使用 SNS 主题执行 Amazon Lambda 函数。有关 Amazon SNS 的更多信息,请参阅 Amazon Simple Notification Service 开发人员指南

要将 Amazon SNS 作为目标添加

  1. 从 OpenSearch 控制面板主菜单中选择提醒

  2. 前往目标选项卡,然后选择添加目标

  3. 为目标提供唯一名称。

  4. 对于 Type (类型),选择 Amazon SNS

  5. 请提供 SNS 主题 ARN。

  6. 为您账户中具有以下信任关系和权限的 IAM 角色提供 ARN(最小值):

    信任关系

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

    建议您使用 aws:SourceAccountaws:SourceArn 条件键来防止出现混淆代理人问题。源帐户是域的所有者,并且源 ARN 是域的 ARN。您的域必须在服务软件 R20211203 或更高版本上才能添加这些条件键。

    例如,您可以将以下条件块添加到信任策略:

    "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name" } }

    权限

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

    有关更多信息,请参阅 IAM 用户指南中的添加 IAM 身份权限

  7. 选择创建

警报设置

OpenSearch 服务允许您修改以下提醒设置

  • plugins.scheduled_jobs.enabled

  • plugins.alerting.alert_history_enabled

  • plugins.alerting.alert_history_max_age

  • plugins.alerting.alert_history_max_docs

  • plugins.alerting.alert_history_retention_period

  • plugins.alerting.alert_history_rollover_period

  • plugins.alerting.filter_by_backend_roles

所有其他设置都使用您无法更改的默认值。

要禁用提醒,请发送以下请求:

PUT _cluster/settings { "persistent" : { "plugins.scheduled_jobs.enabled" : false } }

以下请求将提醒配置为在七天后自动删除历史记录索引,而不是默认的 30 天:

PUT _cluster/settings { "persistent": { "plugins.alerting.alert_history_retention_period": "7d" } }

如果您之前创建了监视器,并且想停止创建每日警报索引,请删除所有警报历史记录索引:

DELETE .plugins-alerting-alert-history-*

要减少历史索引的分片计数,请创建索引模板。以下请求设置警报和索引状态管理设置为一个分片和一个副本:

PUT _template/template-name { "index_patterns": [".opendistro-alerting-alert-history-*", ".opendistro-ism-managed-index-history-*"], "template": { "settings": { "number_of_shards": 1, "number_of_replicas": 1 } } }

根据您对数据丢失的容忍度,您甚至可以考虑使用零副本。有关创建和管理索引模板的更多信息,请参阅索引模板(在 OpenSearch 文档中)。

提醒权限

提醒支持访问权限的精细控制。有关混合和匹配权限以适应您的使用案例的详细信息,请参阅提醒安全(在 OpenSearch 文档中)。