Что такое logsta sh grok pattern для apache error ..? - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь настроить фильтр logsta sh для определения фильтра ошибок журнала apache. По сути, это «комбинированный» LogFormat с некоторым дополнительным полем, вот определение формата apache журнала:

[11446] [Чт 30 января 07:50:49 2020] [debug]: RT :: Дата использовала время :: ParseDate, чтобы сделать '2020-01-31T07: 20: 46Z' 1580446800 (/app/rt4/sbin/../lib/RT/Date.pm:274)

или это может быть следующий формат:

[ср. 26 июня 22:13:22 2013] [ошибка] [клиент 10.10.10.100] PHP фатальная ошибка: необработанное исключение '\ Foo \ Bar '

Я попробовал следующее решение:

APACHE_ERROR_TIME% {DAY}% {MONTH}% {MONTHDAY}% {TIME}% {YEAR} APACHE_ERROR_LOG [% {APACHE_ERROR_TIME: отметка времени}] [% {LOGLEVEL: уровень логирования}] (?: [Client% {IPORHOST: clientip}]) {0,1}% {GREEDYDATA: errormsg}

но он дает grok_match_failure .

Пожалуйста, помогите мне с generi c рабочим шаблоном для приведенной выше строки (то есть это не должно иметь значения, даже если одна из частей строки нет)

Обновленный вопрос: * 1 028 *

Итак, вышеописанное работало с { ссылка }, и я снова застрял с другой строкой системного журнала.

Можете ли вы также предложить обобщенный c шаблон grok одинаков для следующих строк:

2 февраля 18:21:14 localhost prometheus_postgres_exporter: time = \ "2020-02-02T18: 21: 14 + 04: 00 \" level = info msg = \ "Ошибка при закрытии соединения с БД без проверки связи: \" source = \ "postgres_exporter. go: 1001 \"

и

Feb 2 05: 56:10 localhost logsta sh: [2020-02-02T05: 56: 10,934] [INFO] [logsta sh .outputs.elasticsearch] ES Определена версия вывода {: es_version => 6}

1 Ответ

0 голосов
/ 30 января 2020

Используя предоставленное APACHE_ERROR_TIME, я получил совпадение с этим шаблоном:

\[%{APACHE_ERROR_TIME:timestamp}\] \[%{LOGLEVEL:loglevel}\](?: \[client %{IPORHOST:clientip}\] ){0,1}%{GREEDYDATA:errormsg}

Помимо экранирования квадратных скобок, были некоторые неуместные пробелы, которые мешали совпадению.

Для:

[11446] [Thu Jan 30 07:50:49 2020] [debug]: RT::Date used Time::ParseDate to make '2020-01-31T07:20:46Z' 1580446800 (/app/rt4/sbin/../lib/RT/Date.pm:274)

Результат:

timestamp   Thu Jan 30 07:50:49 2020
loglevel    debug
clientip    
errormsg    : RT::Date used Time::ParseDate to make '2020-01-31T07:20:46Z' 1580446800 (/app/rt4/sbin/../lib/RT/Date.pm:274)
before match:   [11446]

Для:

[Wed Jun 26 22:13:22 2013] [error] [client 10.10.10.100] PHP Fatal error: Uncaught exception '\Foo\Bar'

Результат:

timestamp   Wed Jun 26 22:13:22 2013
loglevel    error
clientip    10.10.10.100
errormsg    PHP Fatal error: Uncaught exception '\Foo\Bar' 
...