nagios 监控xenserver 温度
cat check_xen_temp.sh#!/bin/bash
ipmitool sensor | gawk -F'|' '
BEGIN {
EXIT=0;
MSG="OK: ";
MSG="WARNING: ";
MSG="CRITICAL: ";
perf="";
}
{ gsub(/\t/," "); gsub(/ +/," "); gsub(/ +\|/,"|"); gsub(/\| +/,"|") }
/^[^|]+\|0x0\|/ { next; };
/^[^|]+\|na\|/ { next; };
/degrees C/ {
THING=$1;
TEMP=$2;
OK=$4;
WARN=$8;
CRIT=$9;
if (OK ~ /ok/) {
MSG = sprintf("%s %s is %dC,",MSG ,THING,TEMP);
perf = sprintf("%s %s=%d;%d;%d;0;100;",perf,THING,TEMP,WARN,CRIT);
next;
}
if (CRIT !~ /na/ && TEMP>=CRIT) {
MSG = sprintf("%s %s is %dC (max %d) ",
MSG, THING, TEMP, CRIT);
perf = sprintf("%s %s=%d;%d;%d;0;100;",perf,THING,TEMP,WARN,CRIT);
EXIT=2;
next;
}
if (WARN !~ /na/ && TEMP>=WARN) {
MSG = sprintf("%s %s is %dC (max %dC, critical at %dC) ",
MSG, THING, TEMP, CRIT);
perf = sprintf("%s %s=%d;%d;%d;0;100;",perf,THING,TEMP,WARN,CRIT);
if (EXIT=0) EXIT=1;
next;
}
MSG = sprintf("%s %s is %d (%s) ", MSG, THING, TEMP, OK);
perf = sprintf("%s %s=%d;%d;%d;0;100;",perf,THING,TEMP,WARN,CRIT);
if (EXIT=0) EXIT=1;
}
END {
gsub(/, *$/,"",MSG);
gsub(/ Temp/,"",MSG);
gsub(/ Temp/,"",perf);
print MSG,"|",perf;
exit EXIT;
}
'
页:
[1]