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

使用 Logstash 将数据加载到 Amazon OpenSearch Service

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

配置

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

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

精细访问控制配置

如果您的 OpenSearch Service 域使用具有 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 的域访问策略或精细访问控制,必须使用 IAM 凭证对所有 OpenSearch Service 请求进行签名。

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

input { s3 { bucket => "my-s3-bucket" 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 Service 域位于 VPC 中,则 Logstash OSS 系统必须能够连接到 VPC,并且可以通过 VPC 安全组访问该域。有关更多信息,请参阅 关于 VPC 域的访问策略