[hobbit] Hobbit viewing temperature in Hobbit
leen smit
leen.smit at gmail.com
Wed Oct 10 19:15:11 CEST 2007
I have been struggling with this as well. Basicly, you have make sure your
output of the output script looks like
Device Temp(°C) Temp(°F)
------------------------------
[image: green] Cpu1 33 91
[image: green] Mainboard 35 95
--------------------------------
I've ended up with the following, using lm_sensors input.
#!/bin/sh
COLUMN=temperature # Name of the column
TEST=temperature
echo " $BBTMP/$MACHINE.temperature.$$"
# Do whatever you need to test for something
# As an example, go red if /tmp/badstuff exists.
ENV_CELSIUS=$(sensors |grep 'CPU Temp'|awk '{print $3}'|sed -e 's/+//' -e
's/°C//' -e 's/..$//')
ENV_CELSIUSMAINB=$(sensors |grep 'M/B' |awk '{print $3}'|sed -e 's/+//' -e
's/°C//')
ENV_HIGHWARN=38
ENV_HIGHPANIC=42
ENV_CPU="Cpu1"
ENV_MAINB="Mainboard"
$AWK -v CELSIUS=$ENV_CELSIUS -v HIGHWARN=$ENV_HIGHWARN -v
HIGHPANIC=$ENV_HIGHPANIC -v CPU=$ENV_CPU \
-v CELSIUSMAINB=$ENV_CELSIUSMAINB -v MAINB=$ENV_MAINB \
'BEGIN {
print "Device Temp(°C) Temp(°F)";
print "------------------------------";
COLOR="green";
if (CELSIUS >= HIGHPANIC) {
COLOR="red";
printf("&red %-12s %3d
%3d\n",CPU,CELSIUS,CELSIUS*9/5+32);
printf("&green %-12s %3d
%3d\n",MAINB,CELSIUSMAINB,CELSIUSMAINB*9/5+32);
} else if (CELSIUS >= HIGHWARN) {
if (COLOR != "red")
COLOR = "yellow";
printf("&yellow %-12s %3d
%3d\n",CPU,CELSIUS,CELSIUS*9/5+32);
printf("&green %-12s %3d
%3d\n",MAINB,CELSIUSMAINB,CELSIUSMAINB*9/5+32);
} else {
printf("&green %-12s %3d
%3d\n",CPU,CELSIUS,CELSIUS*9/5+32);
printf("&green %-12s %3d
%3d\n",MAINB,CELSIUSMAINB,CELSIUSMAINB*9/5+32);
}
}
END {
print "-------------------------------------------------";
if (COLOR == "green") {
print "Status green: All devices look okay";
exit 0
} else if (COLOR == "yellow") {
print "Status yellow: Some devices are nearing
their operational limits";
exit 1
} else if (COLOR =="red") {
print "Status red : SYSTEM NEAR THERMAL
SHUTDOWN!!!";
exit 2
} else {
print "Status purple : Unknown status";
exit -1
}
}' > $BBTMP/$MACHINE.temperature.$$
COLOR=`$GREP Status $BBTMP/$MACHINE.temperature.$$| $SED 's/Status //'|$SED
's/:.*$//'`
#create log if NOT green
if [ $COLOR != "green" ]
then
TEMP=`$GREP $ENV_CPU $BBTMP/$MACHINE.temperature.$$| awk
'{print $3}'`
echo "$COLOR : `date '+%a %d %b %Y %H:%M:%S'`
Temperature: $TEMP" >> $HOBBITCLIENTHOME/logs/temp_alerts.log
fi
DATA="Temperature status:
`$CAT $BBTMP/$MACHINE.temperature.$$`
Last 10 Alerts:
`$TAIL $HOBBITCLIENTHOME/logs/temp_alerts.log`
"
LINE="status $MACHINE.$TEST $COLOR `date` $DATA"
Clean up our mess....
$RM -f $BBTMP/$MACHINE.temperature.$$
# Tell Hobbit about it
$BB $BBDISP "$LINE"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20071010/0240f814/attachment.html>
More information about the Xymon
mailing list