Ошибка декодирования JSON и неработающие журналы в Elastic search - PullRequest
1 голос
/ 09 октября 2019

Я использую стек elk версии 5.5 в Ubuntu 16.0

Мои журналы ломаются и неправильно записываются в эластичный файл, что приводит к json.erros

, как показано ниже

Error decoding JSON: invalid character 'e' in literal null (expecting 'u')"  

очень частые ошибки json.error, и эти журналы не читаются или не записываются должным образом вasticsearch?

, и это происходит каждые 5-10 минут. Пожалуйста, помогите мне решить эту проблему.

скриншот сломанных журналов в кибане

Мой пример журнала:

{"log":"2019-10-01 07:18:26:854*[DEBUG]*cluster2-nio-worker-0*Connection*userEventTriggered*Connection[cassandraclient/10.3.254.137:9042-1, inFlight=0, closed=false] was inactive for 30 seconds, sending heartbeat\n","stream":"stdout","time":"2019-10-01T07:18:26.85462769Z"}

1 Ответ

1 голос
/ 09 октября 2019

Поскольку вы заявили, что журналы json не очень хорошо распечатаны, я предполагаю, что многострочные настройки вашей входной конфигурации вызывают проблемы.

По моему мнению, вам не нужны какие-либо многострочные настройки, когда выиметь журналы в формате json и они напечатаны не очень, то есть весь объект json (= событие журнала) записан в одну строку.

Вы уже указали

json.message_key: log

Это должно исключительно выполнить работу.

Итак, подведем итог:

УдалитьНастройки мультилинии и попробуйте еще раз. Ваша конфигурация должна выглядеть следующим образом:

filebeat.inputs: 
  - type: log 
    paths: 
      - "/var/log/containers/*.log"
    tags: ["kube-logs"]
    symlinks: true 
    json.message_key: log
    json.keys_under_root: true 
    json.add_error_key: true
...