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

使用 Logstash 加载数据

开源版本的 Logstash (Logstash OSS) 提供了一种使用批量 API 将数据上传到您的 Amazon ES 域的便捷方法。此服务支持所有标准 Logstash 输入插件,包括 Amazon S3 输入插件。Amazon ES 支持两个 Logstash 输出插件:标准 Elasticsearch 插件和 logstash-output-amazon-es 插件,后一种插件使用 IAM 凭证对 Logstash 事件进行签名并导出到 Amazon ES。

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

input { beats { port => 5044 } } output { elasticsearch { hosts => ["https://domain-endpoint:443"] ssl => true index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" user => "some-user" password => "some-user-password" ilm_enabled => false } }

如果您的域对 IAM 主用户使用基于 IAM 的域访问策略或精细访问控制,必须使用 IAM 凭证对所有 Amazon ES 请求进行签名。在这种情况下,对来自 Logstash 的请求进行签名的最简单办法是使用 logstash-output-amazon-es 件。首先,安装该插件。

bin/logstash-plugin install logstash-output-amazon_es

然后,导出您的 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"

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

input { s3 { bucket => "my-s3-bucket" region => "us-east-1" } } output { amazon_es { hosts => ["domain-endpoint"] ssl => true region => "us-east-1" index => "production-logs-%{+YYYY.MM.dd}" } }

如果您的 Amazon ES 域位于 VPC 中,则 Logstash 必须在同一 VPC 中的计算机上运行,并且可以通过 VPC 安全组访问该域。有关更多信息,请参阅关于 VPC 域的访问策略