Я использую logstash 6.2.4 со следующими настройками yml -
pipeline.batch.size: 600
pipeline.workers: 1
dead_letter_queue.enable: true
Файл conf, используемый для запуска приложения logstash, - -
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.Здесь версия всегда является строкой, а не целым числом, и, следовательно ,asticsearch выдает ошибку 400 Bad Request.
В этом коде ошибки - logstash должен повторить конечное число раз, а затем должен передать полезную нагрузку этого запроса в файл dead_letter_queue (в соответствии с документацией - https://www.elastic.co/guide/en/logstash/current/dead-letter-queues.html),, но он застревает в бесконечном цикле с mesaage -
[2018-10-23T12: 11: 42,475] [ОШИБКА] [logstash.outputs.elasticsearch] Обнаруженоповторяющаяся ошибка. Повторить попытку с экспоненциальным откатом {: code => 400,: url => "localhost: 9200 / _bulk"}
Ниже приведено содержимое каталога data / dead_letter_queue / main -
1.log (содержит одно значение «1»)
Помогите, если какая-либо конфигурация отсутствует, что приводит к этой ситуации.