Antwort: Re: [hobbit] Antwort: RE: [hobbit] UPS monitoring using devmon
thorsten.erdmann at daimler.com
thorsten.erdmann at daimler.com
Thu Sep 10 17:19:44 CEST 2009
Hi David
your example was very helpfull. I now managed to get a working devmon
template for my MGE UPS. Only graphing isn't working now.
BTW.: anyone knows how I can format output numbers in devmon. I now get
the voltages with two digits behind the colon, but these are always zero.
So I want to omit these digits at all.
Thorsten Erdmann
david.baldwin at ausport.gov.au schrieb am 10.09.2009 09:51:49:
> Sorry all, didn't get time today to update the UPS template today.
>
> It has separate graphs for input voltage, output phase voltages, battery
> levels and separate tests/alerting on various conditions - input
> voltage=0, battery time remaining <15 mins, output phase overload, etc.
>
> David.
> > Oops, forgot to add the graphing bit.
> >
> > Usual stuff.
> > In hobbitserver.cfg
> > Add "ups=ncv" to TEST2RRD=
> > Add "ups" to GRAPHS=
> > Add line NCV_ups="Load:GAUGE,Charge:GAUGE"
> >
> > Add this to hobbitgraph.cfg
> > [ups]
> > TITLE UPS Charge
> > YAXIS Power
> > -u 100
> > -l 0
> > DEF:u=ups.rrd:Charge:AVERAGE
> > DEF:p=ups.rrd:Load:AVERAGE
> > LINE2:u#00CC00:Charge
> > LINE2:p#0000FF:Load
> > COMMENT:\n
> > GPRINT:u:LAST:Charge \: %5.1lf%s (cur)
> > GPRINT:u:MAX: \: %5.1lf%s (max)
> > GPRINT:u:MIN: \: %5.1lf%s (min)
> > GPRINT:u:AVERAGE: \: %5.1lf%s (avg)\n
> > GPRINT:p:LAST:Load \: %5.1lf%s (cur)
> > GPRINT:p:MAX: \: %5.1lf%s (max)
> > GPRINT:p:MIN: \: %5.1lf%s (min)
> > GPRINT:p:AVERAGE: \: %5.1lf%s (avg)\n
> > Cheers
> > Vernon
> >
> >
> >
> >
------------------------------------------------------------------------
> > *From:* Everett, Vernon [mailto:Vernon.Everett at woodside.com.au]
> > *Sent:* Thursday, 10 September 2009 2:50 PM
> > *To:* 'hobbit at hswn.dk'
> > *Subject:* RE: [hobbit] Antwort: RE: [hobbit] UPS monitoring using
devmon
> >
> > I wrote this a while back for our MGEs.
> > As you can see, it predates my introduction to devmon and indicates a
> > complete lack of understanding of SNMP.
> > That being said, the code and the MIBs might give you a good
> > indication of where to start.
> > (Either that, or you can just use it as "good enough")
> > This was designed to run on the hobbit/xymon server.
> >
> > I have been meaning to rewrite this, or move it to devmon, but just
> > haven't had the time.
> > (And it's doing an adequate job for now.)
> >
> > Cheers
> > V
> >
> > bb-host entries look like this
> > 1.2.3.4 galaxy3000 # http://1.2.3.4/ups_prop.htm ups galaxy3000
> > COMMENT:"Meaningful Comment if required"
> > 2.3.4.5 Karratha_UPS # http://2.3.4.5/ups_prop.htm ups galaxy3000
> > COMMENT:"Insert Comment"
> >
> >
> >
> >
> > --- snip---
> >
> > cat ups.ksh
> > #!/bin/ksh
> > DATE=$(date)
> > #set -x
> > SPACER="
> > "
> > BBTMP=/tmp
> > #BBHOSTS=/etc/hobbit/bb-hosts
> > #OUT=$BBTMP/upspage
> > BBHOSTLIST="$BBHOSTS $(grep ^include $BBHOSTS | awk '{ print $2 }')" #
> > Make sure we read the include files too
> > #grep -h " ups " $BBHOSTLIST | egrep -v "^page|^include"
> > grep -h " ups " $BBHOSTLIST | egrep -v "^page|^include" | while read
> > IP UPSNAME HASH URL UPS TYPE OTHER
> > do
> > echo $IP $UPSNAME
> > ping -c1 $IP > /dev/null
> > if [ $? -eq 0 ]
> > then
> > COLOUR=green
> > case $TYPE in
> > galaxy3000)
> > > $OUT.warn
> > > $OUT.tmp
> > TEMP=$(snmpget -v1 -c public $IP
SNMPv2-SMI::mib-2.33.1.1.1.0)
> > DEVICE=${TEMP##*:} # String
> > TEMP=$(snmpget -v1 -c public $IP
SNMPv2-SMI::mib-2.33.1.1.2.0)
> > MODEL=${TEMP##*:} # String
> > TEMP=$(snmpget -v1 -c public $IP
SNMPv2-MIB::sysLocation.0)
> > LOCATION=${TEMP##*:} # String
> > TEMP=$(snmpget -v1 -c public $IP
SNMPv2-SMI::mib-2.33.1.1.4.0)
> > SERIAL=${TEMP##*:} # String
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.4.8.0)
> > LOWBATTERY=${TEMP##*:} # Integer % Point at
> > which shutdown triggered
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.5.1.0)
> > TIME_REMAIN=${TEMP##*:} # Integer seconds
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.5.2.0)
> > BATTERY_LEVEL=${TEMP##*:} # Integer %
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.5.9.0)
> > BATTERY_FAULT=${TEMP##*:} # Integer 1=yes 2=no
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.5.11.0)
> > BATTERY_REPLACE=${TEMP##*:} # Integer 1=yes 2=no
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.5.15.0)
> > CHARGER_FAULT=${TEMP##*:} # Integer 1=yes 2=no
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.7.3.0)
> > OUT_ON_BAT=${TEMP##*:} # Integer 1=yes 2=no
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.7.4.0)
> > OUT_ON_BYPASS=${TEMP##*:} # Integer 1=yes 2=no
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.7.10.0)
> > OUT_OVERLOAD=${TEMP##*:} # Integer 1=yes 2=no
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.7.10.0)
> > COMMSOK=${TEMP##*:} # Integer 1=yes 2=no
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.6.1.0)
> > INPHASES=${TEMP##*:} # Integer 1 or 3
> >
> > TEMP=$(snmpget -v1 -c public $IP
1.3.6.1.4.1.705.1.6.2.1.2)
> > INVOLT=${TEMP##*:} # Integer 10ths of a volt
> >
> > TEMP=$(snmpget -v1 -c public $IP
1.3.6.1.4.1.705.1.6.2.1.3)
> > INFREQ=${TEMP##*:} # Integer 10ths of a Hertz
> >
> > TEMP=$(snmpget -v1 -c public $IP
1.3.6.1.4.1.705.1.6.2.1.6)
> > INAMPS=${TEMP##*:} # Integer 10ths of an Amp
> >
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.6.3.0)
> > INOK=${TEMP##*:} # Integer 1=yes 2=no
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.6.4.0)
> > INFAILCAUSE=${TEMP##*:} # Integer 1=no fault
> > # 2=bad voltage
> > # 3=bad frequency
> > # 4=no voltage
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.7.1.0)
> > OUTPHASES=${TEMP##*:} # Integer 1 or 3
> > TEMP=$(snmpget -v1 -c public $IP
1.3.6.1.4.1.705.1.7.2.1.2)
> > OUTVOLT=${TEMP##*:} # Integer 10ths of a volt
> > TEMP=$(snmpget -v1 -c public $IP
1.3.6.1.4.1.705.1.7.2.1.3)
> > OUTFREQ=${TEMP##*:} # Integer 10ths of a Hertz
> > TEMP=$(snmpget -v1 -c public $IP
1.3.6.1.4.1.705.1.7.2.1.4)
> > OUTLOAD=${TEMP##*:} # Integer %
> > TEMP=$(snmpget -v1 -c public $IP
1.3.6.1.4.1.705.1.7.2.1.5)
> > OUTAMPS=${TEMP##*:} # Integer 10ths of an Amp
> > TEMP=$(snmpget -v1 -c public $IP 1.3.6.1.4.1.705.1.7.11.0)
> > OVERTEMP=${TEMP##*:} # Integer 1=yes 2=no
> > echo "Manufacturer "$DEVICE | sed
> > 's/"//g' >> $OUT.tmp
> > echo "Model "$MODEL | sed
> > 's/"//g' >> $OUT.tmp
> > echo "Serial Number "$SERIAL | sed
> > 's/"//g' >> $OUT.tmp
> > echo "Location "$LOCATION |
> > sed 's/"//g' >> $OUT.tmp
> > echo >> $OUT.tmp
> > #$LOWBATTERY
> > #WARN=""
> > #[ -z "$TIME_REMAIN" ] && TIME_REMAIN=0
> > #[ $TIME_REMAIN -lt 1200 -a "$COLOUR" != "red" ] &&
> > COLOUR=yellow
> > #[ $TIME_REMAIN -lt 1200 ] && WARN="Time Remaining low"
> > #[ $TIME_REMAIN -lt 600 ] && COLOUR=red
> > #[ $TIME_REMAIN -lt 600 ] && WARN="Time Remaining
critical"
> > #[ "$WARN" != "" ] && echo $WARN >> $OUT.warn
> > ((s=$TIME_REMAIN%60))
> > ((m=$TIME_REMAIN/60))
> > echo "Time Remaining "$m Minutes $s
> > Seconds >> $OUT.tmp
> > WARN=""
> > [ -z "$BATTERY_LEVEL" ] && BATTERY_LEVEL=0
> > [ $BATTERY_LEVEL -lt 95 -a "$COLOUR" != "red" ] &&
> > COLOUR=yellow
> > [ $BATTERY_LEVEL -lt 95 ] && WARN="Battery level low"
> > [ $BATTERY_LEVEL -lt 50 ] && COLOUR=red
> > [ $BATTERY_LEVEL -lt 50 ] && WARN="Battery level critical"
> > [ "$WARN" != "" ] && echo $WARN >> $OUT.warn
> > echo "Battery Level "$BATTERY_LEVEL
> > % >> $OUT.tmp
> > BATTERY_LEVEL=$(echo $BATTERY_LEVEL | sed 's/[ \t]*//')
> > if [ $BATTERY_FAULT -eq 1 ]
> > then
> > BF=Yes
> > COLOUR=red
> > echo "Battery Fault!" >> $OUT.warn
> > else
> > BF=No
> > fi
> > echo "Battery Fault "$BF >>
$OUT.tmp
> > if [ $BATTERY_REPLACE -eq 1 ]
> > then
> > BR=Yes
> > COLOUR=red
> > echo "Battery replacement required" >> $OUT.warn
> > else
> > BR=No
> > fi
> > echo "Replace Battery "$BR >>
$OUT.tmp
> > if [ $BATTERY_FAULT -eq 1 ]
> > then
> > BR=Yes
> > COLOUR=red
> > echo "Battery replacement required" >> $OUT.warn
> > else
> > BR=No
> > fi
> > if [ $CHARGER_FAULT -eq 1 ]
> > then
> > CF=Yes
> > COLOUR=red
> > echo "Charger Fault" >> $OUT.warn
> > else
> > CF=No
> > fi
> > echo "Charger Fault "$CF >>
$OUT.tmp
> > if [ $OUT_ON_BAT -eq 1 ]
> > then
> > OUT_ON_BAT=Yes
> > COLOUR=red
> > echo "UPS running on battery" >> $OUT.warn
> > else
> > OUT_ON_BAT=No
> > fi
> > echo "On Battery "$OUT_ON_BAT
> > >> $OUT.tmp
> > if [ $OUT_ON_BYPASS -eq 1 ]
> > then
> > OUT_ON_BYPASS=Yes
> > COLOUR=red
> > echo "UPS on power bypass" >> $OUT.warn
> > else
> > OUT_ON_BYPASS=No
> > fi
> > echo "On Bypass
> > "$OUT_ON_BYPASS >> $OUT.tmp
> > if [ $OUT_OVERLOAD -eq 1 ]
> > then
> > OUT_OVERLOAD=Yes
> > COLOUR=red
> > echo "UPS output overload" >> $OUT.warn
> > else
> > OUT_OVERLOAD=No
> > fi
> > echo "Battery Overload "$OUT_OVERLOAD
> > >> $OUT.tmp
> > if [ $OVERTEMP -eq 1 ]
> > then
> > OVERTEMP=Yes
> > COLOUR=red
> > echo "Unit overheating" >> $OUT.warn
> > else
> > OVERTEMP=No
> > fi
> > echo "Unit Overheating "$OVERTEMP >>
> > $OUT.tmp
> > #if [ $COMMSOK -eq 2 ]
> > #then
> > # COMMSOK=No
> > # COLOUR=red
> > # echo "No comms from device" >> $OUT.warn
> > #else
> > # COMMSOK=Yes
> > #fi
> > #echo "Comms OK "$COMMSOK >>
> > $OUT.tmp
> > echo >> $OUT.tmp
> > echo "Input Phases "$INPHASES >>
> > $OUT.tmp
> > INVOLT=$(echo "scale=1 ; $INVOLT/10" | bc)
> > echo "Input Voltage "$INVOLT >>
> > $OUT.tmp
> > INFREQ=$(echo "scale=1 ; $INFREQ/10" | bc)
> > echo "Input Frequency "$INFREQ >>
> > $OUT.tmp
> > INAMPS=$(echo "scale=1 ; $INAMPS/10" | bc)
> > echo "Input Current "$INAMPS >>
> > $OUT.tmp
> > if [ $INOK -eq 1 ]
> > then
> > # A silly case of reverse logic applies here
> > INOK=No
> > COLOUR=red
> > echo "Power input outside tollerance" >> $OUT.warn
> > else
> > INOK=Yes
> > fi
> > echo "Input OK "$INOK >>
$OUT.tmp
> > [ $INFAILCAUSE -eq 1 ] && FAILCAUSE="No failures"
> > [ $INFAILCAUSE -eq 2 ] && FAILCAUSE="Voltage out of
> > tollearance"
> > [ $INFAILCAUSE -eq 3 ] && FAILCAUSE="Frequency out of
> > tollernace"
> > [ $INFAILCAUSE -eq 4 ] && FAILCAUSE="No voltage - power
fail"
> > echo "Cause of Failure "$FAILCAUSE >>
> > $OUT.tmp
> > echo >> $OUT.tmp
> > echo "Output Phases "$OUTPHASES >>
> > $OUT.tmp
> > OUTVOLT=$(echo "scale=1 ; $OUTVOLT/10" | bc)
> > echo "Output Voltage "$OUTVOLT >>
> > $OUT.tmp
> > OUTFREQ=$(echo "scale=1 ; $OUTFREQ/10" | bc)
> > echo "Output Frequency "$OUTFREQ >>
> > $OUT.tmp
> > OUTAMPS=$(echo "scale=1 ; $OUTAMPS/10" | bc)
> > echo "Output Current "$OUTAMPS >>
> > $OUT.tmp
> > OUTLOAD=$(echo $OUTLOAD | sed 's/[ \t]*//')
> > echo "Output Load "$OUTLOAD % >>
> > $OUT.tmp
> > echo >> $OUT.final
> > cat $OUT.warn >> $OUT.final
> > cat $OUT.tmp >> $OUT.final
> > echo '<FONT COLOR="Black">' >> $OUT.final
> > echo "Load=$OUTLOAD" >> $OUT.final
> > echo "Charge=$BATTERY_LEVEL" >> $OUT.final
> > echo '</FONT>' >> $OUT.final
> > rm $OUT.tmp
> > rm $OUT.warn
> > esac
> > else
> > echo "Device Unreachable!" >> $OUT.final
> > #COLOUR=yellow
> > fi
> > $BB $BBDISP "status $UPSNAME.ups $COLOUR $DATE $(cat $OUT.final)"
> > rm $OUT.final
> > done
> >
> > --- snip ---
> >
> >
> >
> >
> >
> >
------------------------------------------------------------------------
> > *From:* thorsten.erdmann at daimler.com
> > [mailto:thorsten.erdmann at daimler.com]
> > *Sent:* Thursday, 10 September 2009 2:18 PM
> > *To:* hobbit at hswn.dk
> > *Subject:* [hobbit] Antwort: RE: [hobbit] UPS monitoring using devmon
> >
> >
> > Hi Craig,
> > hi David,
> >
> > sounds very nice.
> >
> > I tried that snmpwalk. It only works with snmp V1. This is the output:
> >
> > SNMPv2-SMI::mib-2.33.1.1.1.0 = STRING: "MGE UPS SYSTEMS"
> > SNMPv2-SMI::mib-2.33.1.1.2.0 = STRING: "Galaxy PW Single//"
> > SNMPv2-SMI::mib-2.33.1.1.3.0 = ""
> > SNMPv2-SMI::mib-2.33.1.1.4.0 = STRING: "GB (SN 49EE49044)"
> > SNMPv2-SMI::mib-2.33.1.1.5.0 = ""
> > SNMPv2-SMI::mib-2.33.1.1.6.0 = ""
> >
> > As I see it, this is only the description of the UPS. I will look for
> > the MIB of my devices.
> > Don't know where all the other things which I want to monitor at
> > minimum are located in the MIB like:
> >
> > Overall status or am I runnung on battery
> > output power
> > remaining battery time
> > temperature
> >
> > > I'll look at uploading it to the SF repository.
> > Maybe this is a stupid question, but I don't find templates and things
> > on the SF page. Only devmon itself.
> > I look at http://devmon.sourceforge.net/ and at
> > http://sourceforge.net/projects/devmon/
> > There is a devmon-template file there, but as I see it, it contains
> > only the templates which are delivered with devmon itself.
> >
> > It would be nice if you share your templates. You can also contact me
> > via EMail at thorsten.erdmann at daimler dot com
> >
> > Thank you very much
> >
> > Thorsten
> >
> >
> >
> > >
> > > Craig
> > >
> > > -----Original Message-----
> > > From: David Baldwin [mailto:david.baldwin at ausport.gov.au]
> > > Sent: Thursday, 10 September 2009 11:53 AM
> > > To: hobbit at hswn.dk
> > > Subject: Re: [hobbit] UPS monitoring using devmon
> > >
> > > thorsten.erdmann at daimler.com wrote:
> > > >
> > > > Hi,
> > > >
> > > > sorry if this a little offtopic, but maybe someone has a devmon
> > > > template for the following UPS:
> > > >
> > > > Emerson/Liebert HiPulse MM
> > > > MGE Galaxy Single
> > > > MGE Upsilon STS_100 Cross switch
> > > > MGE Upsilon STS_20 Cross switch
> > > >
> > > > Thank you
> > > > Thorsten
> > > >
> > > >
> > > > If you are not the intended addressee, please inform us
immediately
> > > > that you have received this e-mail in error, and delete it. We
thank
> > > > you for your cooperation.
> > > >
> > > I have a template for the standard UPS MIB which I could send
through. I
> > > have a little more work to do on it splitting the power status into
3
> > > tests for input, output and battery. Should give me motivation to
> > > complete this today and I will upload to devmon SF site.
> > >
> > > You can check if your UPS supports the standard UPS MIB or wants a
> > > proprietary one (substituting for myups below, and your community
string
> > > if it is not "public"):
> > >
> > > snmpwalk -v2c -cpublic myups 1.3.6.1.2.1.33.1.1
> > >
> > > Note that some UPS devices only support SNMPv1, so try -v1 instead
of
> > > -v2c above if it doesn't work.
> > >
> > > David.
> > >
> > > --
> > > David Baldwin - IT Unit
> > > Australian Sports Commission www.ausport.gov.au
> > > Tel 02 62147830 Fax 02 62141830 PO Box 176 Belconnen ACT 2616
> > > david.baldwin at ausport.gov.au Leverrier Street Bruce ACT
2617
> > >
> > >
> > >
------------------------------------------------------------------------
> > > -------------
> > > Keep up to date with what's happening in Australian sport visit
> > > http://www.ausport.gov.au
> > >
> > > This message is intended for the addressee named and may contain
> > > confidential and privileged information. If you are not the intended
> > > recipient please note that any form of distribution, copying or use
of
> > > this communication or the information in it is strictly prohibited
and
> > > may be unlawful. If you receive this message in error, please delete
it
> > > and notify the sender.
> > >
------------------------------------------------------------------------
> > > -------------
> > >
> > > To unsubscribe from the hobbit list, send an e-mail to
> > > hobbit-unsubscribe at hswn.dk
> > >
> > >
> > > DISCLAIMER:
> > >
> > >
> > > The information contained in this email message is confidential and
> > > for the attention of the intended recipient only.
> > > It is not necessarily the official view or communication of the
> > > Rodney District Council.
> > > If you are not the intended recipient you must not disclose, copy or
> > > distribute this message or the information in it.
> > > If you have received this message in error, please delete or destroy
> > > all copies of the email and notify the sender immediately.
> > > Rodney District Council accepts no responsibility for any effects
> > > this email message or attachments has on the recipient network or
> > > computer system.
> > >
> > > To unsubscribe from the hobbit list, send an e-mail to
> > > hobbit-unsubscribe at hswn.dk
> > >
> > >
> >
> > If you are not the intended addressee, please inform us immediately
> > that you have received this e-mail in error, and delete it. We thank
> > you for your cooperation.
> >
> > NOTICE: This email and any attachments are confidential.
> > They may contain legally privileged information or
> > copyright material. You must not read, copy, use or
> > disclose them without authorisation. If you are not an
> > intended recipient, please contact us at once by return
> > email and then delete both messages and all attachments.
> >
> > NOTICE: This email and any attachments are confidential.
> > They may contain legally privileged information or
> > copyright material. You must not read, copy, use or
> > disclose them without authorisation. If you are not an
> > intended recipient, please contact us at once by return
> > email and then delete both messages and all attachments.
> >
>
>
> --
> David Baldwin - IT Unit
> Australian Sports Commission www.ausport.gov.au
> Tel 02 62147830 Fax 02 62141830 PO Box 176 Belconnen ACT 2616
> david.baldwin at ausport.gov.au Leverrier Street Bruce ACT 2617
>
>
> To unsubscribe from the hobbit list, send an e-mail to
> hobbit-unsubscribe at hswn.dk
>
>
If you are not the intended addressee, please inform us immediately that you have received this e-mail in error, and delete it. We thank you for your cooperation.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20090910/98fded1b/attachment.html>
More information about the Xymon
mailing list