Logstash 6.2 - полная постоянная очередь (неправильное отображение?) - PullRequest
0 голосов
/ 16 мая 2018

Моя очередь почти заполнена, и я вижу эти ошибки в моем файле журнала:

[2018-05-16T00:01:33,334][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"2018.05.15-el-mg_papi-prod", :_type=>"doc", :_routing=>nil}, #<LogStash::Event:0x608d85c1>], :response=>{"index"=>{"_index"=>"2018.05.15-el-mg_papi-prod", "_type"=>"doc", "_id"=>"mHvSZWMB8oeeM9BTo0V2", "status"=>400, "error"=>{"type"=>"mapper_parsing_exception", "reason"=>"failed to parse [papi_request_json.query.disableFacets]", "caused_by"=>{"type"=>"i_o_exception", "reason"=>"Current token (VALUE_TRUE) not numeric, can not use numeric value accessors\n at [Source: org.elasticsearch.common.bytes.BytesReference$MarkSupportingStreamInputWrapper@56b8442f; line: 1, column: 555]"}}}}}
[2018-05-16T00:01:37,145][INFO ][org.logstash.beats.BeatsHandler] [local: 0:0:0:0:0:0:0:1:5000, remote: 0:0:0:0:0:0:0:1:50222] Handling exception: org.logstash.beats.BeatsParser$InvalidFrameProtocolException: Invalid Frame Type, received: 69
[2018-05-16T00:01:37,147][INFO ][org.logstash.beats.BeatsHandler] [local: 0:0:0:0:0:0:0:1:5000, remote: 0:0:0:0:0:0:0:1:50222] Handling exception: org.logstash.beats.BeatsParser$InvalidFrameProtocolException: Invalid Frame Type, received: 84

...

[2018-05-16T15:28:09,981][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"})
[2018-05-16T15:28:09,982][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"})
[2018-05-16T15:28:09,982][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"})

Если я понимаю первое предупреждение, проблема в отображении. У меня в папке Logstash много файлов. Мои вопросы:

  1. Как очистить мою очередь, можно ли просто удалить все файлы из папки очереди logstash (все журналы будут потеряны)? А затем повторно отправить все данные в logstash с соответствующим индексом?
  2. Как я могу определить, где именно проблема с отображением или какие серверы отправляют данные неверного типа?
  3. У меня есть конвейер на порту 5000 с именем testing-pipe только для проверки, активен ли Logstash от nagios. Что это за [INFO ][org.logstash.beats.BeatsHandler] журналы?
  4. Если я правильно понимаю, [INFO ][logstash.outputs.elasticsearch] это просто протоколы попыток обработать очередь logstash?

На всех серверах есть FIlebeat 6.2.2. Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 17 мая 2018
  1. Все страницы в очереди могут быть удалены, но это не является правильным решением. В моем случае очередь была заполнена, потому что были события с различным отображением индекса. В Elasticsearch 6 вы не можете отправлять документы с различным отображением в один и тот же индекс, поэтому журналы, сложенные в очередь из-за этих журналов (даже если есть только одно неправильное событие, все остальные не будут обработаны). Так как обработать все данные, которые вы можете обработать, пропустить неправильный? Решение состоит в том, чтобы настроить DLQ ( очередь недоставленных сообщений ). Каждое событие с кодом ответа 400 или 404 перемещается в DLQ, чтобы другие могли обрабатываться. Данные из DLQ могут быть позже обработаны с помощью конвейера.

  2. Неправильное отображение можно определить по журналу ошибок «error» => {"type"=>"mapper_parsing_exception", ..... }. Чтобы указать точное место с неправильным отображением, вы должны сравнить отображение событий и индексов.

  3. [INFO ][org.logstash.beats.BeatsHandler] было вызвано сервером Nagios. Проверка не состояла из действительного запроса, поэтому исключение обработки. Проверка должна проверить, активна ли служба Logstash. Теперь я проверяю сервис Logstas на localhost:9600, для получения дополнительной информации здесь .

  4. [INFO ][logstash.outputs.elasticsearch] означает, что Logstash пытается обработать очередь, но индекс заблокирован ([FORBIDDEN/12/index read-only / allow delete (api)]), поскольку индексы были переведены в состояние только для чтения. Elasticsearch, когда на сервере недостаточно места, автоматически настраивает индексы только для чтения. Это можно изменить на cluster.routing.allocation.disk.watermark.low, для получения дополнительной информации здесь .

...