Я пытаюсь спрятать файл журнала в elasticsearch с помощью Logstash. При этом я столкнулся с проблемой.Трудно записать файл журнала с различным появлением порядка для поля с помощью Logstash
Если файл журнала имеет тот же самый вид журнала линий, как показано ниже,
[12/Сен/2016: 18: 23: 07] VendorID = 5037 Код = С AcctID = 5317605039838520 [12/Sep/2016: 18: 23: 22] VendorID = 9108 Код = A AcctID = 2194850084423218 [12/Sep/2016: 18: 23: 49] VendorID = 1285 Код = F AcctID = 8560077531775179 [12/Sep/2016: 18:23:59] VendorID = 1153 код = D acctID = 4433276107716482
где дата, VendorID, код и порядок acctID о появлении полей не изменяется или новый элемент не добавляется к нему, тогда фильтр (приведенный ниже) в файлах конфигурации работает хорошо.
\[%{MONTHDAY}/%{MONTH}/%{YEAR}:%{TIME}\] VendorID=%{INT:VendorID} Code=%{WORD:Code} AcctID=%{INT:AcctID}
Предположим, что изменения порядка, как в примере, приведенном ниже, или если новый элемент добавляется к одному из журналов линий, то grokparsefailure происходит.
[12/Сен/2016: 18: 23: 07] VendorID = 5037 Код = С AcctID = 5317605039838520
[12/Сен/2016: 18: 23: 22] VendorID = 9108 Код = А AcctID = 2194850084423218 [12/Sep/2016: 18: 23: 49] VendorID = 1285 Код = F AcctID = 8560077531775179 [12/Sep/2016: 18: 23: 59] VendorID = 1153 Код = D AcctID = 4433276107716482 [ 12/Sep/2016: 18: 24: 50] AcctID = 3168124750473449 VendorID = 1065 Код = L [12/Sep/2016: 18: 24: 50] AcctID = 3168124750473449 VendorID = 1065 Код = L [12/Sep/2016: 18: 24: 50] AcctID = 3168124750473449 VendorID = 1065 Код = L
Здесь, в примере, последние три строки журнала отличаются от первых четырех строк журнала в порядке появления полей. И из-за этого сообщение фильтра с шаблоном grok не могло разобрать ниже трех строк, поскольку оно написано для первых четырех строк.
Как я должен обрабатывать этот сценарий, когда я сталкиваюсь с этим случаем? Пожалуйста, помогите мне решить эту проблему. Также укажите любую ссылку на любой документ для подробного объяснения с примерами.
спасибо, что заранее.
извлечь часть после даты, а затем использовать Kv фильтр. Или используйте несколько шаблонов grok. – baudsp