Я пытаюсь настроить фильтр 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}