elasticsearch - 使用 amazon_es 插件将数据推送到 Elasticsearch 时出现 logstash 错误
问题描述
我正在尝试使用 Logstash 将数据推送到 Amazon Elasticsearch。但得到错误 -
Error while performing resurrection {:error_message=>"undefined method `credentials' for nil:NilClass", :class=>"NoMethodError", :backtrace=>["/etc/logstash/vendor/bundle/jruby/2.3.0/gems/aws-sdk-core-2.11.32/lib/aws-sdk-core/signers/v4.rb:45:in `initialize'", "/etc/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-amazon_es-6.4.2-java/lib/logstash/outputs/amazon_es/http_client/manticore_adapter.rb:108:in `perform_request'", "/etc/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-amazon_es-6.4.2-java/lib/logstash/outputs/amazon_es/http_client/pool.rb:291:in `perform_request_to_url'", "/etc/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-amazon_es-6.4.2-java/lib/logstash/outputs/amazon_es/http_client/pool.rb:245:in `block in healthcheck!'", "org/jruby/RubyHash.java:1343:in `each'", "/etc/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-amazon_es-6.4.2-java/lib/logstash/outputs/amazon_es/http_client/pool.rb:241:in `healthcheck!'", "/etc/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.1.1-java/lib/logstash/outputs/elasticsearch/http_client/pool.rb:234:in `block in start_resurrectionist'", "/etc/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.1.1-java/lib/logstash/outputs/elasticsearch/http_client/pool.rb:128:in `until_stopped'", "/etc/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.1.1-java/lib/logstash/outputs/elasticsearch/http_client/pool.rb:233:in `block in start_resurrectionist'"]}
Logstash 版本 - 6.2.4 Elasticsearch 版本 - 6.5
配置如下 -
amazon_es
{
id => 'es-bag-prod'
hosts => ["https://${ES_HOST}:${ES_PORT}"]
region => "ap-southeast-1"
aws_access_key_id => "${AWS_ACCESS_KEY}"
aws_secret_access_key => "${AWS_SECRET_KEY}"
timeout => 25
index => "${ES_INDEX_PREFIX_BAG}-%{[@metadata][month]}"
document_type => "${ES_BAG_DOC}"
document_id => "%{[@metadata][doc_id]}"
action => "%{[@metadata][action]}"
version => "%{[@metadata][version]}"
version_type => "external_gte"
}
解决方案
你是如何开始 Logstash 的?在将 Logstash 作为服务运行时,访问 env 变量似乎可能存在问题。有关更多信息,请参见:
https://github.com/awslabs/logstash-output-amazon_es/issues/34
推荐阅读
- azure - 仅来自某些 AppService 的 Azure 存储访问缓慢
- microsoft-teams - 如何拨打电话:适用于自适应卡
- java - 从选择对象设置选项
- apache-spark - java.lang.ClassNotFoundException:找不到类 com.amazon.ws.emr.hadoop.fs.EmrFileSystem
- java - 使用 downloadtask 下载多个 url
- java - 在某些按钮上随机放置文本
- java - REST API:服务中的字段存储库需要一个名为“entityManagerFactory”的 bean,但无法找到
- javascript - 如何使用“数据:文本/纯文本”打印井号?
- heroku - 在带有 .htpasswd 命令的 heroku CLI 中,输入的密码未显示
- ruby - 用户电子邮件为零(Octokit Github API)