Ошибка разбора Grok в logstash с шаблоном, включающим квадратные скобки - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть шаблон журнала, где каждый элемент журнала заключен в квадратные скобки. Я не могу контролировать оригинальный журнал. Я просто хочу, чтобы синтаксический анализ 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 пытается интерпретировать строку. Я уверен, что это связано только с частью в скобках, потому что, когда я удаляю этот шаблон, все работает нормально. Буду благодарен за любые идеи, что я делаю не так. Спасибо

1 Ответ

1 голос
/ 08 апреля 2019

фига. Я заставил это работать, экранируя скобки как это: \ [% {NUMBER: threadId} \]

...