小洪維尼 发表于 2019-1-12 13:50:14

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]
查看完整版本: nagios 监控xenserver 温度