Разобрать строку в JSON во FluentD - PullRequest
0 голосов
/ 19 марта 2019

У меня есть эта строка журнала:

2019-03-18 15:56:57.5522 | HandFarm | ResolveDispatcher | start resolving msg: 8

Скажите, пожалуйста, как мне проанализировать эту строку в формате JSON в файле fluentd.conf?Мне нужен следующий формат:

{
  "timestamp"  : "2019-03-18 15:56:57.5522",
  "system"  : "HandFarm",
  "module": "ResolveDispatcher",
  "message": "start resolving msg: 8",
}

Я пытался использовать стандартные форматеры, ничего не вышло ..

1 Ответ

1 голос
/ 20 марта 2019

Вы можете использовать regexp парсер и форматировать события в JSON. Вот мой пример, где я читаю ввод из хвоста файла журнала (с тем же вводом, что и у вас) и вывод в stdout. Дайте мне знать.

<source>
  @type tail
  path /tailsource/t.log
  pos_file /tailpos/t.log.pos
  read_from_head true
  tag temp
  <parse>
    @type regexp
    expression /^(?<timestamp>.*?)\s\| (?<system>.*?)\s\| (?<module>.*?)\s\| (?<message>.*)$/
  </parse>
</source>

<match>
  @type stdout
</match>

Вот пример вывода -

{ "Отметка времени": "2019-03-18 15: 56: 57,5522" , "система": "HandFarm", "модуль": "ResolveDispatcher", "сообщение": "старт разрешение сообщения: 8 "}

...