[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