由于批量上传错误而无法上传到Elasticsearch集群时,logstash会无限重试

时间:2019-10-09 23:38:20

标签: elasticsearch logging amazon-s3 logstash

当由于批量上传错误而无法上传到Elasticsearch集群时,

logstash会无限次重试。它停留在此错误,并且不处理其他日志。有人可以帮我解决这个问题吗?

[2019-10-09T19:05:38,343] **[ERROR]** [logstash.outputs.elasticsearch][main] Encountered a retryable error. Will Retry with exponential backoff {:code=>413, :url=>"https://elasticsearch.domain:443/_bulk", :body=>"{\"Message\":\"Request size exceeded 10485760 bytes\"}"}

2 个答案:

答案 0 :(得分:1)

您似乎正在使用Logstash> 7.6,这也是我的情况,因此刷新不再起作用。

要更改批量大小,请在输出部分中添加以下参数(自2020/03/04起可用):

max_bulk_bytes => 9999999

此后,插件将自动设置批量大小。

amazon_es {
    hosts => ["monitoring"]
    region => "eu-central-1"
    index => "cloudfront-logs-%{+YYYY.MM.dd}"
    document_id => "%{[x_edge_request_id]}"
    max_bulk_bytes => 9999999
    }
}

您还可以考虑根据数据更新ES集群的实例类型: AWS ES Network limits

在GitHub插件页面上查看更多详细信息: logstash-output-amazon_es

我也尝试更改管道大小,但没有成功: https://www.elastic.co/guide/en/logstash/current/logstash-settings-file.html

答案 1 :(得分:0)

将大小限制为10MB,那么也许您应该将conf Logstash输出.. flush_size更改为10

vim /etc/logstash/conf.d/output
output {
    elasticsearch {
      hosts => ["XXX.XX.XX.XX"]
      index => "logstash-%{+YYYY.MM.dd}"
      flush_size => 10
      template => "/etc/logstash/template.json"
    }
}