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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon Elasticsearch Service 中配置警报

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

警报需要使用 Elasticsearch 6.2 或更高版本。有关完整文档(包括 API 描述),请参阅Open Distro of Elasticsearch 文档。本主题重点介绍了 (Amazon ES) 中的警报与开源版本相比的差异。

开始使用警报

  1. 选择提醒从 Kibana 主菜单中选择。

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

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

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

  5. (可选)向监控器添加一个或多个操作。

    提示

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

有关详细步骤,请参阅监视器在 Open Distro of Elasticsearch 文档中。

Differences

与 Open Distro of Elasticsearch 相比,Amazon ES 警报具有一些显著区别。

Amazon SNS 支持

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

添加 Amazon SNS 作为目标

  1. 选择提醒从 Kibana 主菜单中选择。

  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" }] }
    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sns:Publish", "Resource": "sns-topic-arn" }] }

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

  7. 选择 Create (创建)

警报设置

亚马逊 ES 允许您修改以下警报设置

  • opendistro.scheduled_jobs.enabled

  • opendistro.alerting.alert_history_enabled

  • opendistro.alerting.alert_history_max_age

  • opendistro.alerting.alert_history_max_docs

  • opendistro.alerting.alert_history_retention_period

  • opendistro.alerting.alert_history_rollover_period

  • opendistro.alerting.filter_by_backend_roles

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

要禁用警报,请发送以下请求:

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

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

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

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

DELETE .opendistro-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 } } }

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

警报权限

警报支持访问权限的精细控制。有关混合和匹配权限以适应您的使用案例的详细信息,请参阅警报安全在 Open Distro of Elasticsearch 文档中。