У меня есть шаблон журнала, в котором каждый элемент журнала заключен в квадратные скобки. Я не могу контролировать исходный журнал. Я просто хочу, чтобы синтаксический анализ grok игнорировал скобки и интерпретировал только то, что находится между ними. На основе чего-то близкого к следующей строке:
2019-04-04 13.23.57.057 [52] [77] [MEASURE] [XYZService]
, я хочу, чтобы шаблон видел 52 как threadId. У меня есть следующий код:
if [message] =~ "MEASURE" {
grok {
match => { " message" => "%{TIMESTAMP_ISO8601:logtime} [%{NUMBER:threadId}] %{GREEDYDATA:restofmessage}" }
}
}
else {
drop()
}
В этом состоянии я получаю grokparsefailure, когда logstash пытается интерпретировать строку. Я уверен, что это связано только с частью в квадратных скобках, потому что, когда я удаляю этот шаблон, все работает нормально. Буду признателен за любые идеи, что я делаю неправильно. Спасибо
неважно. Я заставил его работать, избегая квадратных скобок следующим образом: \ [ %{NUMBER:threadId} \ ]