На сервере есть проверка, выполняющаяся через выхов php-скрипта.
Соответствие регулярному выражению ^OK означает что всё в порядке. В любом другом случае - авария.
Проверка долгая и скрипт не всегда успевает ответить за время ожидания проверки. Если скрипт не успевает сработать - возвращается EOF, т.е. не соответствующий регулярному выражению.
Неуспевать проверка может часто - примерно раз или несколько раз в сутки. Может неуспевать полчаса подряд например если диск подтормаживает.
Нужно сделать такой триггер, который будет срабатывать если регулярного выражения не встречалось за последний час.
С числовыми значениями всё понятно - там можно посчитать сумму за последний час и если она равна 0 - значит всё было плохо. Как быть с текстовой строкой или как превратить её в числовое значение не нашел и сейчас проверка выглядит так:
{Parallels sitebuilder:web.page.regexp[{$APACHE_IP},/check.php,{$SELF_MONITORING_PORT},"^OK"].iregexp(^OK)}=0 & {Parallels sitebuilder:web.page.regexp[{$APACHE_IP},/check.php,{$SELF_MONITORING_PORT},"^OK"].iregexp(^OK,#1)}=0 & {Parallels sitebuilder:web.page.regexp[{$APACHE_IP},/check.php,{$SELF_MONITORING_PORT},"^OK"].iregexp(^OK,#2)}=0 & {Parallels sitebuilder:web.page.regexp[{$APACHE_IP},/check.php,{$SELF_MONITORING_PORT},"^OK"].iregexp(^OK,#3)}=0
Хотелось бы чего-то более читабельного.
Соответствие регулярному выражению ^OK означает что всё в порядке. В любом другом случае - авария.
Проверка долгая и скрипт не всегда успевает ответить за время ожидания проверки. Если скрипт не успевает сработать - возвращается EOF, т.е. не соответствующий регулярному выражению.
Неуспевать проверка может часто - примерно раз или несколько раз в сутки. Может неуспевать полчаса подряд например если диск подтормаживает.
Нужно сделать такой триггер, который будет срабатывать если регулярного выражения не встречалось за последний час.
С числовыми значениями всё понятно - там можно посчитать сумму за последний час и если она равна 0 - значит всё было плохо. Как быть с текстовой строкой или как превратить её в числовое значение не нашел и сейчас проверка выглядит так:
{Parallels sitebuilder:web.page.regexp[{$APACHE_IP},/check.php,{$SELF_MONITORING_PORT},"^OK"].iregexp(^OK)}=0 & {Parallels sitebuilder:web.page.regexp[{$APACHE_IP},/check.php,{$SELF_MONITORING_PORT},"^OK"].iregexp(^OK,#1)}=0 & {Parallels sitebuilder:web.page.regexp[{$APACHE_IP},/check.php,{$SELF_MONITORING_PORT},"^OK"].iregexp(^OK,#2)}=0 & {Parallels sitebuilder:web.page.regexp[{$APACHE_IP},/check.php,{$SELF_MONITORING_PORT},"^OK"].iregexp(^OK,#3)}=0
Хотелось бы чего-то более читабельного.
Comment