使用 Logstash 将数据加载到亚马逊 OpenSearch 服务 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Logstash 将数据加载到亚马逊 OpenSearch 服务

Logstash(Logstash OSS)的开源版本为使用批量 API 将数据上传到您的亚马逊服务域提供了一种便捷的方式。 OpenSearch 该服务支持所有标准的 Logstash 输入插件,包括 Amazon S3 输入插件。 OpenSearch 服务支持logstash-output-opensearch输出插件,该插件同时支持基本身份验证和 IAM 证书。该插件适用于 Logstash OSS 版本 8.1 及更低版本。

配置

Logstash 配置因域使用的身份验证类型不同而不同。

无论使用何种身份验证方法,都必须在配置文件的输出部分中将 ecs_compatibility 设置为 disabled。Logstash 8.0 引入了一项突破性更改,其中所有插件都默认以 ECS 兼容模式运行。必须覆盖此默认值才能保持旧有的行为。

精细访问控制配置

如果您的 OpenSearch 服务域使用带有 HTTP 基本身份验证的精细访问控制,则配置与任何其他 OpenSearch集群类似。此示例配置文件从开源版本的 Filebeat (Filebeat OSS) 获取其输入。

input { beats { port => 5044 } } output { opensearch { hosts => "https://domain-endpoint:443" user => "my-username" password => "my-password" index => "logstash-logs-%{+YYYY.MM.dd}" ecs_compatibility => disabled ssl_certificate_verification => false } }

配置因 Beats 应用程序和用例而异,但您的 Filebeat OSS 配置可能如下所示:

filebeat.inputs: - type: log enabled: true paths: - /path/to/logs/dir/*.log filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.ilm.enabled: false setup.ilm.check_exists: false setup.template.settings: index.number_of_shards: 1 output.logstash: hosts: ["logstash-host:5044"]

IAM 配置

如果您的网域使用基于 IAM 的域访问策略或主用户的精细访问控制,则必须使用 IAM 凭证签署所有向 Ser OpenSearch vice 发出的请求。以下基于身份的策略将所有 HTTP 请求授予域的子资源。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:aws-account-id:domain/domain-name/*" } ] }

要设置 Logstash 配置,请将您的配置文件更改为使用插件进行输出。此示例配置文件从 S3 存储桶中的文件获取其输入:

input { s3 { bucket => "amzn-s3-demo-" region => "us-east-1" } } output { opensearch { hosts => ["domain-endpoint:443"] auth_type => { type => 'aws_iam' aws_access_key_id => 'your-access-key' aws_secret_access_key => 'your-secret-key' region => 'us-east-1' } index => "logstash-logs-%{+YYYY.MM.dd}" ecs_compatibility => disabled } }

如果您不想在配置文件中提供 IAM 凭证,则可以将其导出(或运行 aws configure):

export AWS_ACCESS_KEY_ID="your-access-key" export AWS_SECRET_ACCESS_KEY="your-secret-key" export AWS_SESSION_TOKEN="your-session-token"

如果您的 OpenSearch 服务域位于 VPC 中,则 Logstash OSS 计算机必须能够连接到 VPC 并能够通过 VPC 安全组访问该域。有关更多信息,请参阅 关于 VPC 域的访问策略