Я использую плагин nagios (check_logs) для сканирования моих журналов и отправки предупреждений, он основан на языке perl. я пытаюсь найти конкретную ошибку в моем файле журнала, но она не соответствует я не знаю, какую ошибку я делаю.
"POST /aimm/mweb/render.ps? HTTP/1.1" 500
Приведенная выше строка, которую я хочу сопоставить, используя регулярное выражение
"POST \/aimm\/mweb\/render.ps? HTTP\/1.1" 500
Приведенную выше строку я пытался сопоставить с шаблоном, но она не работает, пожалуйста, помогите мне решить эту тему.
Это точный тег nagios
{
tag => "rplogcheck",
type => 'rotating::uniform',
logfile => "/opt/fundamo/apache/logs/nofile",
rotation => "access[_\\d{4}\\-\\d{2}\\-\\d{2}]*.log",
criticalpatterns => [
'/"POST \/aimm\/mweb\/render\.ps\? HTTP\/1\.1" 500/'
],
options => 'noprotocol,sticky=300'
}
);
он не показывает никаких ошибок, но также не ищет точный шаблон, обычные шаблоны, которые я могу сопоставить, проверены в nagios, также синтаксис кажется правильным.
до сих пор не могу понять, какую ошибку я делаю при сопоставлении с образцом.
?
— это специальный символ регулярного выражения. Убежать от этого. - person Miller   schedule 15.10.2014rotation => "access[_\\d{4}\\-\\d{2}\\-\\d{2}]*.log",
- person Toto   schedule 15.10.2014