本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Logstash 将数据加载到 Amazon OpenSearch Service
开源版本的 Logstash (Logstash OSS) 提供了一种使用批量 API 将数据上传到您的 Amazon OpenSearch Service 域的便捷方法。该服务支持所有标准 Logstash 输入插件,包括 Amazon S3 输入插件。OpenSearch Service 支持 logstash-output-opensearch
配置
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 凭证对所有 OpenSearch Service 请求进行签名。以下基于身份的策略将所有 HTTP 请求授予域的子资源。
{ "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 => "
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域名的访问策略。