Ошибки индексации при использовании расширения quarkus logging-gelf и стека ELK - PullRequest
2 голосов
/ 28 мая 2020

Я настроил ведение журнала, как описано в https://quarkus.io/guides/centralized-log-management, со стеком ELK с использованием версии 7.7.

Мой конвейер logsta sh выглядит как предложенный пример:

input {
    gelf {
        port => 12201
    }
}
output {
    stdout {}
    elasticsearch {
        hosts => ["http://elasticsearch:9200"]
    }
}

Большинство сообщений отображаются в моем Kibana с использованием logsta sh. * В качестве шаблона индекса. Но некоторые сообщения сбрасываются.

2020-05-28 15:30:36,565 INFO [io.quarkus] (Quarkus Main Thread) Quarkus 1.4.2.Final started in 38.335s. Listening on: http://0.0.0.0:8085 Проблема, похоже, в том, что поля MessageParam0, MessageParam1, MessageParam2 и т. Д. c. сопоставляются с типом, который впервые появился в журналах, но на самом деле содержит несколько типов данных. В журнале Elasticsearch отображаются такие ошибки, как ["org.elasticsearch.index.mapper.MapperParsingException: не удалось проанализировать поле [MessageParam1].

Есть ли способ в расширении Quarkus logging-gelf правильно сопоставить значения?

1 Ответ

2 голосов
/ 28 мая 2020

ELK может автоматически создать сопоставление индекса Elasticsearch, просмотрев первый проиндексированный документ. Это очень удобная функция, но она имеет некоторый недостаток.

Например, если у вас есть поле, которое может содержать числа или строки, если первый документ содержит номер для этого поля, сопоставление будет создается с числовым полем, поэтому вы не сможете проиндексировать документ, содержащий строку внутри этого поля ...

Единственный обходной путь для этого - создать сопоставление заранее (вы можете определить только поля, вызывающие проблема, остальные поля будут созданы автоматически).

Это проблема ELK, мы ничего не можем сделать на стороне Quarkus.

...