在 Amazon OpenSearch Service 中設定提醒 - Amazon OpenSearch Service

在 Amazon OpenSearch Service 中設定提醒

在 Amazon OpenSearch Service 中設定提醒,以便當一個或多個索引中的資料符合特定條件時接收通知。例如,您可能希望在應用程式於 1 個小時內記錄超過 5 個以上的 HTTP 503 錯誤時收到電子郵件,或者在過去 20 分鐘內未有任何新文件編製成索引時通知開發人員。

提醒需要 OpenSearch 或 Elasticsearch 6.2 或更高版本。如需完整文件 (包括 API 描述),請參閱 OpenSearch 文件。本主題強調 OpenSearch Service 與開源版本之間的提醒差異。

開始使用提醒

  1. 從 OpenSearch Dashboards 主選單中選擇 Alerting (提醒)。

  2. 設定提醒的目的地。在 Slack、Amazon Chime、自訂 Webhook 或 Amazon SNS 之間進行選擇。如您所想,通知需要連線到目的地。例如,您的 OpenSearch Service 網域必須能夠連線至網際網路,才能通知 Slack 頻道,或將自訂的 webhook 傳送至第三方伺服器。自訂 Webhook 必須具有公有 IP 地址,以便 OpenSearch Service 網域向其傳送提醒。

  3. 以下列三種方式之一建立監控:視覺化、使用查詢或使用異常偵測器。

  4. 定義觸發監控的條件。

  5. (選用) 新增一個或多個動作至監控。

    提示

    當動作成功傳送簡訊之後,您就必須負責保護該簡訊的存取權 (例如,存取 Slack 頻道)。如果您的網域包含敏感資料,請考慮在沒有動作的情況下使用觸發程序,並定期檢查 Dashboards 是否有提醒。

如需詳細步驟,請參閱 OpenSearch 文件中的監控

差異

Amazon OpenSearch Service 中的提醒與 OpenSearch 的開放原始碼版本相比,有一些顯著差異。

支援 Amazon SNS

OpenSearch Service 支援 Amazon Simple Notification Service (Amazon SNS) 來發送通知。此整合意味著除了標準目的地 (Slack、自訂 Webhooks 和 Amazon Chime) 之外,您還可以傳送電子郵件、文字簡訊,甚至執行使用 SNS 主題的 AWS Lambda 函數。如需 Amazon SNS 的詳細資訊,請參閱 Amazon Simple Notification Service 開發人員指南

新增 Amazon SNS 做為目的地

  1. 從 OpenSearch Dashboards 主選單中選擇 Alerting (提醒)。

  2. 選擇 Destinations (目的地) 標籤,然後選擇 Add Destination (新增目的地)。

  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. 選擇 Create (建立)。

提醒設定

使用 OpenSearch Service 可修改下列提醒設定

  • 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 文件中的提醒安全