Ошибка синтаксического анализа Fluentd с окончанием журналов JSON и Non JSON - PullRequest
0 голосов
/ 29 января 2020

У меня есть файл журнала, в котором последовательные строки идут в другом формате. один с JSON объектом в конце, другой без JSON

Тип 1: 2020-01-29 09:38:09 [/] [main] INFO org .springframework.boot.web.embedded.tomcat.TomcatWebServer | | Tomcat запущен на порту (ах): 9021 (http) с контекстным путем '/ service'

Тип 2: (с Json в конце) 2020-01- 29 09:38:09 [/] [main] ИНФОРМАЦИЯ org.springframework.boot.web.embedded.tomcat.TomcatWebServer | | Tomcat запущен на порту (ах): 9021 (http) с контекстным путем '/ service' {'key': 'value'}

Использование приведенного ниже кода в моем файле fluentd.conf для анализа журнала file

@type tail path /root/logs/my-service.log pos_file /root/logs/my-service.log.pos tag my-service.log @type multiline format_firstline / ^ \ d {4} - \ d {1,2} - \ d {1,2} / format1 / ^ (? \ d {4} - \ d {1,2} - \ d {1,2} \ d { 1,2}: \ д {1,2}: \ д {1,2}) \ s + [(??? \ ш * (= /)) / ([^ \ s] )] \ s + [([^ \ S] +?)] \ s + ([^ \ S] +?) \ s + (+ (= [{) |?.??. ) (?. *) /

Этот формат работает для формата журнала TYPE 2, упомянутого выше, но выдает ошибку с TYPE 1. Так как belwo

0 выдает событие ошибки: error_class = ArgumentError error = "params не существовать "

Так как JSON не доступен в конце.

Как мне справиться с таким сценарием, было бы действительно полезно исправить некоторые текущие проблемы в моем стеке EFK.

...