建立 Amazon OpenSearch 擷取管道 - Amazon OpenSearch Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立 Amazon OpenSearch 擷取管道

管道是 Amazon OpenSearch Ingestion 用來將資料從其來源 (資料來源) 移動到其接收 (資料來源) 的機制。在 OpenSearch Ingestion 中,接收端永遠是單一的 Amazon OpenSearch Service 網域,而您的資料來源可能是 Amazon S3、Fluent Bit 或 OpenTelemetry Collector 等用戶端。

如需詳細資訊,請參閱 OpenSearch 文件中的管道

先決條件和必要的 IAM 角色

若要建立 OpenSearch 擷取管道,您必須擁有下列資源:

  • OpenSearch Ingestion 將擔任寫入接收器的 IAM 角色。您將在管道組態中包含此角色 ARN。

  • OpenSearch Service 網域或 OpenSearch Serverless 集合可做為接收。如果您要寫入網域,則必須執行 OpenSearch 1.0 或更新版本,或 Elasticsearch 7.4 或更新版本。接收器必須具有存取政策,將適當的許可授予您的 IAM 管道角色。

如需建立這些資源的指示,請參閱下列主題:

注意

如果您要寫入使用精細存取控制的網域,則需要完成額外的步驟。請參閱 步驟 3:映射管道角色 (僅適用於使用精細存取控制的網域)

所需的 IAM 許可

OpenSearch Ingestion 使用下列 IAM 許可來建立管道:

  • osis:CreatePipeline – 建立管道。

  • osis:ValidatePipeline – 檢查管道組態是否有效。

  • iam:PassRole – 將管道角色傳遞至 OpenSearch Ingestion,以便其能夠將資料寫入網域。此許可必須位於管道角色資源 (您在管道組態中為 sts_role_arn選項指定的 ARN) 上,或者如果您打算在每個管道中使用不同的角色*,則此許可就是如此。

例如,下列政策會授予建立管道的許可:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:ListPipelineBlueprints", "osis:ValidatePipeline" ] }, { "Resource":[ "arn:aws:iam::your-account-id:role/pipeline-role" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }

OpenSearch Ingestion 也包含名為 的許可osis:Ingest,這是使用 Signature 第 4 版將簽署的請求傳送至管道所必需。如需詳細資訊,請參閱建立擷取角色

注意

此外,第一個在帳戶中建立管道的使用者必須具有 iam:CreateServiceLinkedRole動作的許可。如需詳細資訊,請參閱管道角色資源

如需每個許可的詳細資訊,請參閱服務授權參考中的 OpenSearch Ingestion 的動作、資源和條件索引鍵

指定管道版本

設定管道時,您必須指定管道將執行的主要 Data Prepper 版本。若要指定版本,請在管道組態中包含 version選項:

version: "2" log-pipeline: source: ...

當您選擇建立時,OpenSearch Ingestion 會決定您指定之主要版本的最新可用次要版本,並將管道與該版本佈建。例如,如果您指定 version: "2",且 Data Prepper 的最新支援版本為 2.1.1,則 OpenSearch Ingestion 會將您的管道佈建為 2.1.1 版。我們不會公開顯示管道正在執行的次要版本。

為了在有新版的主要 Data Prepper 可用時升級管道,請編輯管道組態並指定新版本。您無法將管道降級至較早版本。

注意

OpenSearch Ingestion 不會立即支援新版本的 Data Prepper。當新版本可公開使用時,以及 OpenSearch Ingestion 中支援時,可能會有一些延遲。此外,OpenSearch Ingestion 可能明確不支援某些主要或次要版本。如需完整清單,請參閱支援的資料準備版本

每當您變更啟動藍/綠部署的管道時,OpenSearch Ingestion 都可以將其升級至管道 YAML 檔案中目前設定之主要版本的最新次要版本。如需詳細資訊,請參閱管道更新的藍/綠部署。OpenSearch Ingestion 無法變更管道的主要版本,除非您明確更新管道組態中的 version 選項。

指定擷取路徑

對於 OTel 追蹤OTel 指標等提取型來源,OpenSearch Ingestion 需要來源組態中的其他path選項。路徑是字串,例如 /log/ingest,代表擷取的 URI 路徑。此路徑會定義您用來將資料傳送至管道的 URI。

例如,假設您為名為 的擷取管道指定下列項目子管道logs

entry-pipeline: source: http: path: "/my/test_path"

當您將資料擷取到管道時,您必須在用戶端組態中指定下列端點:https://logs-abcdefgh.us-west-2.osis.amazonaws.com/my/test_path

路徑必須以斜線 (/) 開頭,並可包含特殊字元 '-'、'_'、'.' 和 '/',以及${pipelineName}預留位置。如果您使用 ${pipelineName}(例如 path: "/${pipelineName}/test_path"),變數會取代為相關聯的子管道名稱。在此範例中,它會是 https://logs.us-west-2.osis.amazonaws.com/entry-pipeline/test_path

建立管道

本節說明如何使用 OpenSearch Service 主控台和 建立 OpenSearch Ingestion 管道 AWS CLI。

建立管道
  1. 登入 Amazon OpenSearch Service 主控台,網址為 https://https://console.aws.amazon.com/aos/home

  2. 在左側導覽窗格中選擇管道,然後選擇建立管道

  3. 選擇空白管道,或選擇組態藍圖。藍圖包含適用於各種常見使用案例的預先設定 YAML 和 JSON 組態檔案。如需詳細資訊,請參閱使用藍圖建立管道

    選擇選取藍圖

  4. 輸入管道的名稱。

  5. (選用) 選擇啟用持久性緩衝。持久性緩衝將您的資料儲存在跨多個可用AZs以磁碟為基礎的緩衝區中。如需詳細資訊,請參閱持久性緩衝。如果您啟用持久性緩衝,請選取 AWS Key Management Service 金鑰來加密緩衝資料。

  6. 在擷取 OpenSearch 運算單位 (OCUs) 中設定管道容量下限和上限。如需詳細資訊,請參閱Amazon OpenSearch Ingestion 中的擴展管道

  7. 管道組態下,以 YAML 格式提供管道組態。如果您使用的是藍圖,則組態已預先填入,但您必須進行一些修改。

    單一管道組態檔案可以包含 1-10 個子管道。每個子管道是單一來源、零個或更多處理器和單一接收器的組合。對於 OpenSearch Ingestion,接收端必須一律是 OpenSearch Service 網域。如需支援選項的清單,請參閱 Amazon OpenSearch Ingestion 管道支援的外掛程式和選項

    注意

    您必須在每個子管道中包含 sts_role_arn選項。管道會擔任 中定義的角色sts_role_arn,以簽署對網域的請求。如需詳細資訊,請參閱授予 Amazon OpenSearch Ingestion 管道對網域的存取權

    下列範例組態檔案使用 HTTP 來源和 Grok 外掛程式來處理非結構化日誌資料,並將其傳送至 OpenSearch Service 網域。子管道名為 log-pipeline

    version: "2" log-pipeline: source: http: path: "/log/ingest" processor: - grok: match: log: [ '%{COMMONAPACHELOG}' ] - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://search-my-domain.us-east-1.es.amazonaws.com" ] index: "apache_logs" aws: sts_role_arn: "arn:aws:iam::123456789012:role/{pipeline-role}" region: "us-east-1"

    您可以建置自己的管道組態,或選擇上傳檔案,並匯入自我管理 Data Prepper 管道的現有組態。或者,您可以使用組態藍圖

  8. 設定管道之後,請選擇驗證管道以確認您的組態正確。如果驗證失敗,請修正錯誤並重新執行驗證。

  9. 網路組態下,選擇 VPC 存取公有存取。如果選擇 Public access (公開存取),請跳到下一步驟。如果您選擇 VPC 存取,請設定下列設定:

    設定 描述
    端點管理

    選擇您要自行建立 VPC 端點,還是讓 OpenSearch Ingestion 為您建立端點。端點管理預設為 OpenSearch Ingestion 管理的端點。

    VPC

    選擇您想使用的虛擬私有雲端 (VPC) ID。VPC 和管道必須位於相同的 中 AWS 區域。

    子網路

    選擇一或多個子網路。OpenSearch Service 將會在子網路中放置 VPC 端點和彈性網路介面

    安全群組

    選擇一或多個 VPC 安全群組,以允許您需要的應用程式在連接埠 (80 或 443) 和管道公開的通訊協定 (HTTP 或 HTTPs) 上存取 OpenSearch 擷取管道。

    VPC 連接選項

    如果您的來源是自我管理的端點,請將您的管道連接到 VPC。選擇其中一個提供的預設 CIDR 選項,或使用自訂 CIDR。

    如需詳細資訊,請參閱設定 Amazon OpenSearch Ingestion 管道的 VPC 存取

  10. (選用) 在標籤下,將一或多個標籤 (索引鍵/值對) 新增至管道。如需詳細資訊,請參閱標記 Amazon OpenSearch 擷取管道

  11. (選用) 在日誌發佈選項下,開啟管道日誌發佈至 Amazon CloudWatch Logs。我們建議您啟用日誌發佈,以便更輕鬆地對管道問題進行故障診斷。如需詳細資訊,請參閱監控管道日誌

  12. 選擇 Next (下一步)

  13. 檢閱管道組態,然後選擇建立

OpenSearch Ingestion 會執行非同步程序來建置管道。一旦管道狀態為 Active,您就可以開始擷取資料。

create-pipeline 命令接受管道組態做為字串或在 .yaml 檔案中。如果您以字串形式提供組態,則必須使用 逸出每行新行\n。例如 "log-pipeline:\n source:\n http:\n processor:\n - grok:\n ...

下列範例命令會使用下列組態建立管道:

  • 最少 4 個擷取 OCUs,最多 10 個擷取 OCUs

  • 在虛擬私有雲端 (VPC) 中佈建

  • 已啟用日誌發佈

aws osis create-pipeline \ --pipeline-name my-pipeline \ --min-units 4 \ --max-units 10 \ --log-publishing-options IsLoggingEnabled=true,CloudWatchLogDestination={LogGroup="MyLogGroup"} \ --vpc-options SecurityGroupIds={sg-12345678,sg-9012345},SubnetIds=subnet-1212234567834asdf \ --pipeline-configuration-body "file://pipeline-config.yaml"

OpenSearch Ingestion 會執行非同步程序來建置管道。一旦管道狀態為 Active,您就可以開始擷取資料。若要檢查管道的狀態,請使用 GetPipeline 命令。

若要使用 OpenSearch Ingestion API 建立 OpenSearch Ingestion 管道,請呼叫 CreatePipeline 操作。

成功建立管道後,您可以設定用戶端,並開始將資料擷取到您的 OpenSearch Service 網域。如需詳細資訊,請參閱將 Amazon OpenSearch 擷取管道與其他 服務和應用程式整合

追蹤管道建立的狀態

您可以追蹤管道的狀態,因為 OpenSearch Ingestion 會佈建管道,並準備擷取資料。

最初建立管道之後,它會經歷多個階段,因為 OpenSearch Ingestion 會準備擷取資料。若要檢視管道建立的各個階段,請選擇管道名稱以查看管道設定頁面。在狀態下,選擇檢視詳細資訊

管道在可供擷取資料之前會先經歷下列階段:

  • 驗證 – 驗證管道組態。當此階段完成時,所有驗證都已成功。

  • 建立環境 – 準備和佈建資源。當此階段完成時,就會建立新的管道環境。

  • 部署管道 – 部署管道。當此階段完成時,管道已成功部署。

  • 檢查管道運作狀態 – 檢查管道的運作狀態。當此階段完成時,所有運作狀態檢查都已通過。

  • 啟用流量 – 啟用管道擷取資料。當此階段完成時,您可以開始將資料擷取到管道中。

使用 get-pipeline-change-progress 命令來檢查管道的狀態。下列 AWS CLI 請求會檢查名為 的管道狀態my-pipeline

aws osis get-pipeline-change-progress \ --pipeline-name my-pipeline

回應:

{ "ChangeProgressStatuses": { "ChangeProgressStages": [ { "Description": "Validating pipeline configuration", "LastUpdated": 1.671055851E9, "Name": "VALIDATION", "Status": "PENDING" } ], "StartTime": 1.671055851E9, "Status": "PROCESSING", "TotalNumberOfStages": 5 } }

若要使用 OpenSearch Ingestion API 追蹤管道建立的狀態,請呼叫 GetPipelineChangeProgress 操作。