В вашем шаблоне grok есть несколько проблем (порядок основан на вхождении в шаблоне grok):
- Уровень журнала находится в квадратных скобках. Шаблон LOGLEVEL не содержит никаких символов, кроме определенных слов. Кроме того, после лог-уровня и перед закрывающей квадратной скобкой есть пробел
- Ваши значения даты вашей метки времени (год, месяц, день) разделены дефисами, которые вы вообще не указали.
- Шаблон MONTH предназначен для полного и / или сокращенного месяца имен , например, Фев или Февраль . Вместо этого вам необходимо использовать MONTHNUM2 -pattern, который использует числа.
- Между секундами и именем потока есть пробел
- Вам необходимо экранировать открывающую квадратную скобку в
[%{DATA:threadName}\]
, поскольку это специальный символ в регулярном выражении - Нет необходимости в бэксле sh до
%{DATA:javafile}
Пожалуйста, ознакомьтесь более подробно с logsta sh рисунками grok и их определения.
Используя предоставленный вами пример журнала, я разработал следующий шаблон:
^\[%{LOGLEVEL:loglevel}\s?+\]\s+%{YEAR}-%{MONTHNUM2}-%{MONTHDAY}\s+%{HOUR}:%{MINUTE}:%{SECOND}\s+\[%{DATA:threadName}\]\s+%{DATA:javafile}\s[-:]\s+%{GREEDYDATA:message}
Вы можете проверить свои шаблоны на этой странице .
Надеюсь, я смогу вам помочь.