46
$c =~ m/^(\d+):(\d+)$/;
my $cl = $1;
my $ch = $2;
#printf("w=$w: wl=$wl, wh=$wh, cl=$cl, ch=$ch\n");
##
Если данные из Log-файла читаются с ошибкой, то есть может произойти
сбой и значение будут вне диапазона, потребуется это так же описать.
Определить, что вывелось значение вне диапазона очень просто, оно будет
координально отличаться от показаний за последний час и будет носить
кратковременный характер.
## Проверка на значения вне диапазона
##
if( $cl > $ch or $wl > $wh){
printf("UNKNOWN: Error threhold");
exit(3);
}
####
В данной части необходимо описать вывод значений в системе
мониторинга для каждого состояния и описать правило проверки значения
внутри заданного диапазона значений, начнем со статуса Critical.
if( $in < $cl or $in > $ch ) {
printf("CRITICAL: %.1f %s crit(%.1f:%.1f) |
rta=%.1f;%.1f;%.1f;0;100\n",$in ,$u,$cl ,$ch ,$in ,$w ,$c );
exit(2);
}elsif ( $in >= $wl and $in <= $wh) {
printf("OK: %.1f %s | rta=%.1f;%.1f;%.1f;%.1f;%.1f\n",$in ,$u,$in ,$wl
,$cl ,$wh ,$ch );