Filebeat + docker swarm ошибка парсинга

Добрый день. Во время парсина логов контейнерв docker swarm возникает ошибка:
ERROR [reader_json] readjson/json.go:65 Error decoding JSON: invalid character '\x06' looking for beginning of value

настройки filebeat:

    filebeat.inputs:
    - type: log
      paths:
       - '/var/lib/docker/containers/*/*.log'
      json.message_key: log
      json.keys_under_root: true
      json.add_error_key: true
      processors:
      - add_docker_metadata: ~

Подскажите как решить проблему

В этом файле, где-то находиться символ с кодом \x06, надо открыть этот файл в редакторе, который показывает такие символы и удалить его.

Спасибо за ответ. Нашел кто добавлял этот символ в логи, проблема решена.
Вопрос. Как лучше парсить логи nginx из docker, они их собирает одной строкой.

Вы модуль nginx сконфигурировали?

Сконфигурировал таким образом.

И модуль nginx у вас разрешен в конфигурации filebeat?

Да конечно включен.
img-2021-06-22-14-07-06
Данные сразу в elasticsearch отправляются, может правильнейв logstash отправлять и там через grok их обрабатывать?

Мне сложно сказать, что конкретно происходив без воспроизведения вашей ситуации, но я так подозреваю ваша маска в var.paths будет собирать кучу логов докера кроме логов nginx. Модуль nginx с такими логами разобраться скорее всего не сможет - поэтому и валит все в одну строку. Как эта строка выглядит и из какого лога вы ее получаете?

Выглядит так лог.

Как тогда правильно модуль nginx настроить?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.