本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 Amazon OpenSearch Ingestion 管道
管道是 Amazon OpenSearch Ingestion 用来将数据从其来源(数据来源)移动到接收器(数据目的地)的一种机制。在 OpenSearch Ingestion 中,接收器将始终是单一的 Amazon OpenSearch 服务域,而您的数据来源可能是 Amazon S3、Fluent Bit 或 Collector 等客户端。 OpenTelemetry
有关更多信息,请参阅 OpenSearch 文档中的管道
先决条件和所需 IAM 角色
要创建In OpenSearch gestion 管道,您必须具有以下资源:
-
OpenSearch Ingestion 为了写入接收器而承担的 IAM 角色,称为管道角色。您可以提前创建此角色,也可以让 OpenSearch Ingestion 在创建管道时自动创建该角色。
-
充当接收器的 OpenSearch 服务域或 OpenSearch 无服务器集合充当接收器。如果您正在写入域,则该域必须运行 OpenSearch 1.0 或更高版本或者 Elasticsearch 7.4 或更高版本。接收器必须具有向您的 IAM 管道角色授予相应权限的访问策略。
有关创建这些资源的说明,请参阅以下主题:
注意
如果您要写入使用精细访问控制的域,则需要完成一些额外的步骤。请参阅映射管道角色(仅适用于使用精细访问控制的域)。
所需的 IAM 权限
OpenSearch Ingestion 使用以下 IAM 权限来创建管道:
-
osis:CreatePipeline
–创建管道。 -
osis:ValidatePipeline
– 检查管道配置是否有效。 -
iam:CreateRole
并且iam:AttachPolicy
— 让 OpenSearch Ingestion 自动为您创建管道角色。 -
iam:PassRole
— 将管道角色传递给 OpenSearch Ingestion,以便向域写入数据。此权限必须位于管道角色资源上,或者*
如果您计划在每个管道中使用不同的角色,则仅。
例如,以下策略授予创建管道的权限:
{ "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:CreateRole", "iam:AttachPolicy", "iam:PassRole" ] } ] }
OpenSearch Ingestion 还包括一项名为osis:Ingest
,只有拥有该权限才能将签名的请求发送到使用 S ignature 版本 4 的管道。有关更多信息,请参阅 创建摄取角色。
注意
此外,第一个在账户中创建管道的用户必须拥有 iam:CreateServiceLinkedRole
操作的权限。有关更多信息,请参阅管道角色资源。
有关每项权限的更多信息,请参阅《服务授权参考 OpenSearch 》中的 “摄取操作、资源和条件密钥”。
指定管道版本
使用配置编辑器创建管道时,必须指定管道将运行的 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 Data Prepper 新版本发布后,Ingestion 不会立即给予支持。新版本公开发布后, OpenSearch Ingestion 会在一段时间后才会给予支持。此外, OpenSearch Ingestion 可能会明确表示不支持某些主要版本或次要版本。有关完整列表,请参阅支持的 Data Prepper 版本。
每当您对启动蓝绿部署的管道进行更改时, OpenSearch Ingestion 都可以将其升级到管道当前配置的主要版本的最新次要版本。有关更多信息,请参阅使用蓝绿部署进行管道更新。 OpenSearch 除非在管道配置中明确更新version
选项,否则 Ingestion 无法更改管道的主要版本。
指定提取路径
对于基于拉取的来源,例如OTel 跟踪path
选项。路径是字符串(例如,/log/ingest
),它表示提取的 URI 路径。此路径定义用于向管道发送数据的 URI。
例如,假设您为带有 HTTP 源的管道指定了以下路径:

向管道中摄取数据时,必须在客户端配置中指定以下端点:https://
。pipeline-name-abc123
.us-west-2
.osis.amazonaws.com/my
/test_path
路径必须以斜杠 (/) 开头,可以包含特殊字符 '-'、'_'、'.'、'/' 以及 ${pipelineName}
占位符。如果您使用${pipelineName}
(例如/${pipelineName}/test_path
), OpenSearch Ingestion 会将变量替换为关联子管道的名称。
创建管道
本部分介绍如何使用 OpenSearch 服务控制台和创建 OpenSearch Ingestion 管道。 Amazon CLI
要创建管道,请在https://console.aws.amazon.com/aos/家
您可以选择空白管道,也可以选择配置蓝图。蓝图包含针对各种常见用例预先配置的管道。有关更多信息,请参阅 处理蓝图。
选择选择蓝图。
配置源
-
如果您从空白管道开始,请从下拉菜单中选择一个来源。可用来源可能包括其他 Amazon Web Services 服务 OpenTelemetry、或 HTTP。有关更多信息,请参阅 将 Amazon OpenSearch Ingestion 管道与其他服务和应用程序集成。
-
根据您选择的来源,为源配置其他设置。例如,要使用 Amazon S3 作为来源,您必须指定管道接收消息的 Amazon SQS 队列的 URL。有关支持的源插件列表及其文档链接,请参阅Amazon OpenSearch Ingestion 管道支持的插件和选项。
-
对于某些源,必须指定源网络选项。选择 VPC 访问或公共访问。如果您选择 Public access (公有访问权限),请跳至下一步。如果您选择 VPC 访问,请配置以下设置:
设置 描述 端点管理 选择是要自己创建虚拟私有云 (VPC) 端点,还是让 OpenSearch Ingestion 为您创建端点。端点管理默认会选择由 OpenSearch Ingestion 托管的端点。
VPC 选择要使用的 VPC 的 ID。VPC 和管道必须位于同一 Amazon Web Services 区域中。
子网 选择一个或多个子网。 OpenSearch 服务会将 VPC 终端节点和弹性网络界面放入子网中。
安全组 选择一个或多个 VPC 安全组,以允许您所需的应用程序在管道公开的端口(80 或 443)和协议(HTTP 或 HTTP 或 HTTPs)上访问 OpenSearch Ingestion 管道。
VPC 挂载选项 如果您的源是自主管理型端点,请将您的管道挂载到某个 VPC。选择提供的默认 CIDR 选项之一,或使用自定义 CIDR。
有关更多信息,请参阅 为 Amazon OpenSearch Ingestion 管道配置 VPC 访问。
-
选择下一步。
配置处理器
向管道中添加一个或多个处理器。处理器是子管道中的组件,允许您在将记录发布到域或集合接收器之前筛选、转换和丰富事件。有关支持的处理器列表及其文档链接,请参阅Amazon OpenSearch Ingestion 管道支持的插件和选项。
您可以选择操作并添加以下内容:
-
条件路由-根据特定条件将事件路由到不同的接收器。有关更多信息,请参阅条件路由
。 -
子管道 — 每个子管道都由一个来源、零个或多个处理器以及一个接收器组成。只有一个子管道可以有外部源。所有其他管道的源必须是整体管道配置中的其他子管道。单个管道配置可以包含 1-10 个子管道。
选择下一步。
配置接收器
选择管道发布记录的目的地。每个子管道必须至少包含一个接收器。您最多可向管道添加 10 个接收器。
对于 OpenSearch 水槽,请配置以下字段:
设置 | 描述 |
---|---|
网络策略名称 (仅限无服务器接收器) |
如果您选择了 OpenSearch 无服务器集合,请输入网络策略名称。 OpenSearch Ingestion 要么创建策略(如果不存在),要么使用允许访问连接管道和集合的 VPC 终端节点的规则对其进行更新。有关更多信息,请参阅 向 Amazon OpenSearch Ingestion 管道授予访问集合的权限。 |
索引名 |
管道发送数据的索引的名称。 OpenSearch 如果没有该索引,Ingestion 会创建它。 |
索引映射选项 |
选择管道将文档及其字段存储和索引到 OpenSearch 接收器中的方式。如果选择 “动态映射”,则在为文档编制索引时会自动 OpenSearch 添加字段。如果选择 “自定义映射”,请输入索引映射模板。有关更多信息,请参阅索引模板 |
启用 DLQ |
为管道配置 Amazon S3 死信队列 (DLQ)。有关更多信息,请参阅 死信队列。 |
其他设置 |
为 OpenSearch 水槽配置高级选项。有关更多信息,请参阅 Data Prepper 文档中的配置选项 |
要添加 Amazon S3 接收器,请选择添加接收器和 Amazon S3。有关更多信息,请参阅 Amazon S3 作为目标。
选择下一步。
配置管道
配置以下其他管道设置:
设置 | 描述 |
---|---|
管道名称 |
管道的唯一名称。 |
永久缓冲区 |
永久缓冲区将您的数据存储在跨多个可用区的磁盘缓冲区中。有关更多信息,请参阅 持久缓冲功能。 如果启用持久缓冲,请选择 Amazon Key Management Service 密钥以加密缓冲区数据。 |
管道容量 |
最小和最大管道容量,以 Ingestion OpenSearch 单位()OCUs为单位。有关更多信息,请参阅 在 Amazon OpenSearch Ingestion 中扩展管道。 |
管道角色 |
IAM 角色,它为管道提供写入接收器以及从基于拉取的源中读取所需的权限。你可以自己创建角色,也可以让 OpenSearch Ingestion 根据你选择的用例为你创建角色。 有关更多信息,请参阅 在 Amazon OpenSearch Ingestion 中设置角色和用户。 |
标签 |
将一个或多个标签添加到管道。有关更多信息,请参阅 标记 Amazon OpenSearch Ingestion 管道。 |
日志发布选项 | 启用向 Amazon 日志发布管道 CloudWatch 日志。建议您启用日志发布,以便更轻松地解决管道问题。有关更多信息,请参阅 监控管道日志。 |
选择下一步。,然后查看您的工作流配置并选择创建管道。
OpenSearch Ingestion 运行一个异步流程来构建管道。当管道状态为 Active
时,您可以开始将数据提取到管道。
create-pipel ine 命令接受以字符串形式或在 .yaml 或 .yaml 或 .json 文件中的管道配置。如果您以字符串形式提供配置,则必须使用 \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
" \ --pipeline-role-arn arn:aws:iam::1234456789012
:role/pipeline-role
OpenSearch Ingestion 运行一个异步流程来构建管道。当管道状态为 Active
时,您可以开始将数据提取到管道。要检查管道的状态,请使用GetPipeline命令。
要使用 OpenSearch Ingestion API 创建 OpenSearch 摄取管道,请调用该操作。CreatePipeline
成功创建管道后,您可以配置客户端并开始将数据提取到 S OpenSearch ervice 域中。有关更多信息,请参阅 将 Amazon OpenSearch Ingestion 管道与其他服务和应用程序集成。
跟踪管道创建的状态
在 Ingestion 预调配管道并准备 OpenSearch 摄取数据时,您可以跟踪管道的状态。
最初创建管道后,Ingestion 要经历多个阶段才可以准备 OpenSearch 摄取数据。要查看管道创建的各个阶段,请选择管道名称以查看其管道设置页面。在状态下,选择查看详细信息。
管道要经过以下几个阶段才可以摄取数据:
-
验证 — 验证管道配置。此阶段完成后,所有验证均已成功。
-
创建环境 — 准备和预调配资源。此阶段完成后,即创建了新的管道环境。
-
部署管道 — 部署管道。此阶段完成后,管道已成功部署。
-
检查管道运行状况 — 检查管道的运行状况。此阶段完成后,所有运行状况检查均已通过。
-
启用流量 — 允许管道摄取数据。此阶段完成后,您可以开始将数据提取到管道。
使用get-pipeline-change-progress命令检查管道的状态。以下 Amazon 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