Filebeat 6.2 не может анализировать журналы json контейнера докеров

Мои журналы приложений в формате json, например

{"verified": true, "id": 42, "date": "bla"}

и я хочу переслать это как json с filebeat (6.2.4). Однако, поскольку приложения работают внутри докера, журнал записывается в /var/lib/docker/containers//_json.log как:

{"log":"{\"verified\": true, \"id\": 42, \"date\": \"bla\"}\r\n","stream":"stdout","time":"2018-08-10T08:13:53.219511878Z"}

Итак, теперь есть json-элемент log со строковым значением.

Когда filebeat анализирует файл журнала докеров, содержимое значения log интерпретируется как простая строка, и filebeat производит следующий вывод:

... "log": "{\"verified\": true, \"id\": 42, \"date\": \"bla\"}", "time": "2018-08-10T09:00:15.038787209Z", "stream": "stdout", ...

Можно ли разобрать поле «log» в filebeat, чтобы выходные данные filebeat содержали json-элементы verified, id и date.

Это моя конфигурация: filebeat.autodiscover: providers: - type: docker templates: - condition: contains.docker.container.image: logprod config: - type: log paths: - /var/lib/docker/containers/${data.docker.container.id}/*.log json.message_key: log json.add_error_key: true json.keys_under_root: true output.console: enabled: true pretty: true

ты когда-нибудь догадывался об этом? У меня такая же проблема.

PoweredByOrange 23.04.2019 22:12

Если кто-то наткнется на это с вводом Graylog Beats, v2.5.2 не может обрабатывать json в сообщении, 3.x может.

Markes 15.10.2019 11:04
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
2
2
447
0

Другие вопросы по теме