Как использовать fluentD для анализа многострочных журналов докеров?

Я пытаюсь агрегировать свою среду ведения журнала для составления докеров, используя драйвер fluentD, Fluent, Elastic, Kibana.

Журналы пересылаются правильно, но каждый вложенный объект JSON записывается как одно событие (см. изображение).

введите здесь описание изображения

Является ли здесь правильным методом структурирования данных с использованием пользовательского регулярного выражения?

У меня есть следующее в моем fluentd.conf

<source>
  type forward
  port 24224
  bind 0.0.0.0
</source>

<match docker.**>
  type elasticsearch
  logstash_format true
  logstash_prefix logstash
  host elasticsearch
  port 9200
  flush_interval 5s
</match>

person Tkwon123    schedule 27.04.2017    source источник


Ответы (1)


Tkwon123. Правильно ли я понимаю, что вы хотите записывать журналы JSON в свои контейнеры докеров, и чтобы каждый объект JSON отображался как 1 журнал в кибане?

Если я правильно вас понимаю, похоже, вам просто нужно убедиться, что ваши журналы JSON печатаются только с конечным возвратом каретки. Глядя на снимок экрана, кажется, что вы печатаете объект JSON, который разбивает его на несколько строк.

Надеюсь, я понял ваш вопрос.

person Guido Pepper    schedule 02.05.2017
comment
Спасибо за ответ. Это конкретное сообщение на самом деле представляет собой многострочный ответ на событие. Кажется, что все события (включая начальную загрузку контейнера) записываются как отдельные события журнала, а не как консолидированные объекты JSON, и с помощью некоторых поисков казалось, что только с помощью некоторых выражений регулярных выражений мы можем объединить эти сообщения, поэтому мы начали вниз маршрут logstash/filebeat. В настоящее время мы изучаем этот подход в качестве альтернативы - person Tkwon123; 04.05.2017