У меня проблема с поиском правильного шаблона Grok для всех моих журналов, чтобы проанализировать их все с помощью logstash.
Пример моих логов:
1) 2016-04-13 19:55:40: pid 21950: LOG: pool_send_and_wait: Сообщение об ошибке или уведомлении от бэкэнда:: Идентификатор узла БД: 4 бэкэнд pid: 65156 инструкция: «UPDATE certname ......». .. (Остальная часть журнала не имеет значения)
2) 2016-04-13 19:55:40: pid 17555: FATAL: не удалось прочитать вид из бэкэнда
Мой шаблон Grok (который работает частично):
grok {match => {"message" => "% {GREEDYDATA: logdate}: pid% {NUMBER: pid}:% {LOGLEVEL: loglevel}:% {GREEDYDATA: logmessage}"}}
Как видите, это то, что меня волнует: 1) Дата журнала 2) PID 3) Уровень журнала 4) Само сообщение
За исключением приведенного выше шаблона, я также попытался указать дату с помощью шаблона \ A% {TIMESTAMP_ISO8601: timestamp} (точно так же, как отладчик Grok предложил мне).
Я предполагаю, что первый журнал является одним из моих проблемных журналов, потому что в нем дважды встречается слово «журнал», хотя во второй раз оно не появляется после двоеточия (в отличие от моего шаблона grok), поэтому у меня нет идея, почему он не выполняет операцию синтаксического анализа.
Фактически, мои журналы, в которых нет слова «журнал», дважды успешно проанализированы - мой шаблон работает частично.
Спасибо :)