stackoverflow.com/questions/42906177/...

вая следующий журнал ошибок, в файле журнала, который я использую в качестве входных данных для команды nagios logwarn -

[19910:7f88e07ff700:559445:000001] [] \nFatal error: File not found: ./postGetAds.php in /var/cake_1.2.0.6311-beta/app/webroot/openx/www/delivery/androidGetAd.php on line 302

Следующее регулярное выражение прекрасно работает, чтобы определить наличие «фатальной» строки:

/^.*Fatal*/g

Вот полная команда nagios logwarn, где я использую приведенное выше регулярное выражение -

/usr/local/nagios/libexec/check_logwarn -d /tmp/logwarn_hiphop_error -p /mnt/log/hiphop/error_`(date +'%Y%m%d')`.log "^.*Fatal*"

А вот и выход, как было до сих пор желательно -

Log errors: [Thu Jan 12 07:46:38 2017] [hphp] [19910:7f89543ff700:558024:000001] [] \nFatal error: File not found: ./postGetAd.php in /var/cake_1.2.0.6311-beta/app/webroot/openx/www/delivery/androidGetAd.php on line 302

Теперь я хочу сделать модификацию, чтобы игнорировать совпадение строки журнала, если после «Fatal» есть строка «File not found:», как в приведенном выше примере журнала ошибок.

бревенчатая документация упоминает поддержку отрицательного проверочного выражения и поддержку нескольких регулярных выражений в одной команде, например так:

logwarn -p -m '^myprog: ' '!retrying' 'ERROR' 

Итак, я попробовал следующее, которое по-прежнему не дает желаемого результата (по-прежнему совпадает с файлом не существует часть) -

/usr/local/nagios/libexec/check_logwarn -d /tmp/logwarn_hiphop_error -p /mnt/log/hiphop/error_20170118.log '^.*Fatal*' '!.*File not found\: \.\/postGetAd\.php'

В практическом сценарии у меня будет несколько путей к файлам, соответствующие ошибки которых «Файл не найден» необходимо игнорировать. Лучшее решение может рассмотреть это также.

Обратите внимание - регулярное выражение здесь - это аромат POSIX.

Ответы на вопрос(1)

Ваш ответ на вопрос