Logstash 6.2.4陷入无限重试循环

时间:2018-10-23 09:03:46

标签: elasticsearch logstash

我正在将Logstash 6.2.4和以下yml设置一起使用-

pipeline.batch.size: 600
pipeline.workers: 1
dead_letter_queue.enable: true

用于运行logstash应用程序的conf文件为-

input {
    file {
        path => "/home/administrator/Downloads/postgresql.log.2018-10-17-06"
        start_position => "beginning"
        }
}
filter {
  grok {
        match => { "message" => "%{DATESTAMP:timestamp} %{TZ}:%{IP:uip}\(%{NUMBER:num}\):%{WORD:dbuser}%{GREEDYDATA:msg}"}
}
        }
output {
   stdout { codec => rubydebug }
   elasticsearch {
   id => 'es-1'
   hosts => ["localhost:9200"]
   timeout => 60
   index => "dlq"
   version => "%{[@metadata][version]}"
   version_type => "external_gte"
 }
}

输入是使用grok过滤器格式化的普通日志文件。 这里的版本始终是字符串,而不是整数,因此elasticsearch会引发错误400 Bad Request。

在此错误代码上-logstash应该重试有限次,然后应将此请求有效负载推送到dead_letter_queue文件(根据文档https://www.elastic.co/guide/en/logstash/current/dead-letter-queues.html),但是它陷入带有消息的无限循环中-

[2018-10-23T12:11:42,475] [错误] [logstash.outputs.elasticsearch]遇到可重试的错误。将以指数退避重试{:code => 400,:url =>“ localhost:9200 / _bulk”}

以下是data / dead_letter_queue /主目录的内容-

1.log(包含单个值“ 1”)

如果缺少任何配置导致这种情况,请提供帮助。

0 个答案:

没有答案