hobbit monitoring of NUT-managed UPSes
Bill Arlofski
waa-hobbitml at revpol.com
Thu Sep 18 17:23:38 CEST 2008
OK, this is a long post, and for that I apologize. It contains information on
changes/additions required to several hobbit config files and it also contains
several scripts in their entirety (cut and pasted from a working server)
I also apologize for the serious lack of any real documentation here. This
post was thrown together quickly, to get the information out into the wild.
Hopefully this will be addressed in the near future (by me or by someone else
with a lot of free time) and this post will be properly organized and migrated
to the shire.
Some things to note:
- First and foremost, a NUT (Network UPS Tools) server managing at least one
UPS is required since this hobbit monitoring implementation pulls UPS data
points from a NUT server.
- This configuration has been in place for about 3 months monitoring
the bat-charge, bat-voltage, in-voltage, out-voltage and ups-load on two
APC1500 UPSes and has performed well for me. Your mileage may vary.
- The scripts, graphs, and other configurations listed here represent the
required configurations for hobbit to monitor two UPSes attached to one NUT
server. You will need to modify much of this, paying careful attention to
UPS names etc. In other words, everywhere you see two UPSes defined, strip
one out and rename the remaining one to match your environment.
- While the plan was to write the scripts so that they are able to monitor
multiple UPSes connected to multiple NUT UPS servers, I know that as written
they will not work properly. Once I have more NUT servers up, this will be
addressed. They currently work fine with multiple UPSes attached to one NUT
server, however.
- Please report back to me if you are able to successfully implement this
configuration. It would be encouraging to know that others have
found this to be useful and it may force me to find the time to clean it up
for the shire. :)
- Comments are welcomed
What follows is a BARE BONES listing of what changes need to be made to your
hobbit system files and the scripts used to pull the data and report back to
the hobbit server.
Please read though each of the lists, and each of the scripts, modifying
system names, UPS names, IP addresses as you see fit before simply cutting
and pasting any of this. You should also read through and understand the the
"how to set up custom graphs" help file here:
http://your.hobbit.server.ip/hobbit/help/howtograph.html to get an
understanding of how this all fits together.
----[hobbitserver.cfg changes]----
Add the following definitions to the TEST2RRD variable:
"bat-charge=ncv,bat-voltage=ncv,in-voltage=ncv,out-voltage=ncv,ups-load=ncv"
Add the following definitions to the GRAPHS variable:
"bat-charge,bat-voltage,in-voltage,out-voltage,ups-load"
Add the following NCV definition lines to the end of the file:
NCV_bat-charge="apc1500115:GAUGE,apc1500117:GAUGE"
NCV_bat-voltage="apc1500115:GAUGE,apc1500117:GAUGE"
NCV_in-voltage="apc1500115:GAUGE,apc1500117:GAUGE"
NCV_out-voltage="apc1500115:GAUGE,apc1500117:GAUGE"
NCV_ups-load="apc1500115:GAUGE,apc1500117:GAUGE"
----[end of hobbitserver.cfg changes]----
----[hobbitgraph.cfg changes]----
Add the following graph definitions to the hobbitgraph.cfg file:
[bat-charge]
TITLE Battery % Charge
YAXIS %
DEF:apc1500115=bat-charge.rrd:apc1500115:AVERAGE
DEF:apc1500117=bat-charge.rrd:apc1500117:AVERAGE
LINE2:apc1500115#00CCCC:apc1500-115
LINE2:apc1500117#FF0000:apc1500-117
COMMENT:\n
GPRINT:apc1500115:LAST: apc1500-115 \: %5.1lf%s (cur)
GPRINT:apc1500115:MAX: \: %5.1lf%s (max)
GPRINT:apc1500115:MIN: \: %5.1lf%s (min)
GPRINT:apc1500115:AVERAGE: \: %5.1lf%s (avg)\n
GPRINT:apc1500117:LAST: acp1500-117 \: %5.1lf%s (cur)
GPRINT:apc1500117:MAX: \: %5.1lf%s (max)
GPRINT:apc1500117:MIN: \: %5.1lf%s (min)
GPRINT:apc1500117:AVERAGE: \: %5.1lf%s (avg)\n
[bat-voltage]
TITLE Battery VDC
YAXIS VDC
DEF:apc1500115=bat-voltage.rrd:apc1500115:AVERAGE
DEF:apc1500117=bat-voltage.rrd:apc1500117:AVERAGE
LINE2:apc1500115#00CCCC:apc1500-115
LINE2:apc1500117#FF0000:apc1500-117
COMMENT:\n
GPRINT:apc1500115:LAST: apc1500-115 \: %5.1lf%s (cur)
GPRINT:apc1500115:MAX: \: %5.1lf%s (max)
GPRINT:apc1500115:MIN: \: %5.1lf%s (min)
GPRINT:apc1500115:AVERAGE: \: %5.1lf%s (avg)\n
GPRINT:apc1500117:LAST: acp1500-117 \: %5.1lf%s (cur)
GPRINT:apc1500117:MAX: \: %5.1lf%s (max)
GPRINT:apc1500117:MIN: \: %5.1lf%s (min)
GPRINT:apc1500117:AVERAGE: \: %5.1lf%s (avg)\n
[in-voltage]
TITLE Input AC Voltage
YAXIS VAC
DEF:apc1500115=in-voltage.rrd:apc1500115:AVERAGE
DEF:apc1500117=in-voltage.rrd:apc1500117:AVERAGE
LINE2:apc1500115#00CCCC:apc1500-115
LINE2:apc1500117#FF0000:apc1500-117
COMMENT:\n
GPRINT:apc1500115:LAST: apc1500-115 \: %5.1lf%s (cur)
GPRINT:apc1500115:MAX: \: %5.1lf%s (max)
GPRINT:apc1500115:MIN: \: %5.1lf%s (min)
GPRINT:apc1500115:AVERAGE: \: %5.1lf%s (avg)\n
GPRINT:apc1500117:LAST: acp1500-117 \: %5.1lf%s (cur)
GPRINT:apc1500117:MAX: \: %5.1lf%s (max)
GPRINT:apc1500117:MIN: \: %5.1lf%s (min)
GPRINT:apc1500117:AVERAGE: \: %5.1lf%s (avg)\n
[out-voltage]
TITLE Output AC Voltage
YAXIS VAC
DEF:apc1500115=out-voltage.rrd:apc1500115:AVERAGE
DEF:apc1500117=out-voltage.rrd:apc1500117:AVERAGE
LINE2:apc1500115#00CCCC:apc1500-115
LINE2:apc1500117#FF0000:apc1500-117
COMMENT:\n
GPRINT:apc1500115:LAST: apc1500-115 \: %5.1lf%s (cur)
GPRINT:apc1500115:MAX: \: %5.1lf%s (max)
GPRINT:apc1500115:MIN: \: %5.1lf%s (min)
GPRINT:apc1500115:AVERAGE: \: %5.1lf%s (avg)\n
GPRINT:apc1500117:LAST: acp1500-117 \: %5.1lf%s (cur)
GPRINT:apc1500117:MAX: \: %5.1lf%s (max)
GPRINT:apc1500117:MIN: \: %5.1lf%s (min)
GPRINT:apc1500117:AVERAGE: \: %5.1lf%s (avg)\n
[ups-load]
TITLE UPS Load %
YAXIS %
DEF:apc1500115=ups-load.rrd:apc1500115:AVERAGE
DEF:apc1500117=ups-load.rrd:apc1500117:AVERAGE
LINE2:apc1500115#00CCCC:apc1500-115
LINE2:apc1500117#FF0000:apc1500-117
COMMENT:\n
GPRINT:apc1500115:LAST: apc1500-115 \: %5.1lf%s (cur)
GPRINT:apc1500115:MAX: \: %5.1lf%s (max)
GPRINT:apc1500115:MIN: \: %5.1lf%s (min)
GPRINT:apc1500115:AVERAGE: \: %5.1lf%s (avg)\n
GPRINT:apc1500117:LAST: acp1500-117 \: %5.1lf%s (cur)
GPRINT:apc1500117:MAX: \: %5.1lf%s (max)
GPRINT:apc1500117:MIN: \: %5.1lf%s (min)
GPRINT:apc1500117:AVERAGE: \: %5.1lf%s (avg)\n
----[end of hobbitgraph.cfg changes]----
----[hobbitlaunch.cfg]----
Add the following script definitions to the hobbitlaunch.cfg file:
[batcharge]
ENVFILE /usr/local/hobbit/client/etc/hobbitclient.cfg
CMD /usr/local/hobbit/client/ext/bat-charge.sh
INTERVAL 5m
[batvoltage]
ENVFILE /usr/local/hobbit/client/etc/hobbitclient.cfg
CMD /usr/local/hobbit/client/ext/bat-voltage.sh
INTERVAL 5m
[involtage]
ENVFILE /usr/local/hobbit/client/etc/hobbitclient.cfg
CMD /usr/local/hobbit/client/ext/in-voltage.sh
INTERVAL 5m
[outvoltage]
ENVFILE /usr/local/hobbit/client/etc/hobbitclient.cfg
CMD /usr/local/hobbit/client/ext/out-voltage.sh
INTERVAL 5m
[upsload]
ENVFILE /usr/local/hobbit/client/etc/hobbitclient.cfg
CMD /usr/local/hobbit/client/ext/ups-load.sh
INTERVAL 5m
----[end of hobbitlaunch.cfg changes]----
----[ external client scripts to reside in ~hobbit/client/ext ]----
---------------------
BATTERY CHARGE SCRIPT
---------------------
#!/bin/bash
#
# waa - 20080616 - bat-charge.sh
#
# William A. Arlofski
# Reverse Polarity, LLC
# 860-824-2433 Office
# http://www.revpol.com/
#
# 20080319 - Initial version
#
# - Client script for use with Hobbit monitoring server
# and NUT UPS monitoring software
#
###############################################################################
#
# Copyright (C) 2008 William A. Arlofski - waa-at-revpol-dot-com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# or visit http://www.gnu.org/licenses/gpl.txt
#
###############################################################################
# ---------------------
# Set up some variables
# ---------------------
upsc="/usr/bin/upsc"
nutserver="UPS fqdn or IP Address"
upslist="apc1500-115 apc1500-117"
datatest="battery\.charge:"
yellowcharge="80"
redcharge="65"
# ----------------
# hobbit variables
# ----------------
COLUMN=bat-charge
COLOR=green
MSG=""
for server in $nutserver; do
for ups in $upslist; do
data=`"$upsc" "$ups"@"$server" 2>&1 | grep "$datatest" | cut -d' ' -f2`
MSG="${MSG}
$ups : $data"
if [ "$data" -le "$redcharge" ]; then
COLOR=red
elif [ "$data" -le "$yellowcharge" ]; then
COLOR=yellow
fi
done
done
# report status to Hobbit Server
$BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date`
${MSG}
"
exit 0
----------------------
BATTERY VOLTAGE SCRIPT
----------------------
#!/bin/bash
#
# waa - 20080616 - bat-voltage.sh
#
# William A. Arlofski
# Reverse Polarity, LLC
# 860-824-2433 Office
# http://www.revpol.com/
#
# 20080319 - Initial version
#
# - Client script for use with Hobbit monitoring server
# and NUT UPS monitoring software
#
###############################################################################
#
# Copyright (C) 2008 William A. Arlofski - waa-at-revpol-dot-com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# or visit http://www.gnu.org/licenses/gpl.txt
#
###############################################################################
# ---------------------
# Set up some variables
# ---------------------
upsc="/usr/bin/upsc"
nutserver="UPS fqdn or IP Address"
upslist="apc1500-115 apc1500-117"
datatest="battery\.voltage:"
yellowvoltage="260"
redvoltage="220"
# ----------------
# hobbit variables
# ----------------
COLUMN=bat-voltage
COLOR=green
MSG=""
for server in $nutserver; do
for ups in $upslist; do
data=`"$upsc" "$ups"@"$server" 2>&1 | grep "$datatest" | cut -d' ' -f2`
datanopoint=`echo "$data" | sed -e 's/\.//'`
MSG="${MSG}
$ups : $data"
if [ "$datanopoint" -le "$redvoltage" ]; then
COLOR=red
elif [ "$datanopoint" -le "$yellowvoltage" ]; then
COLOR=yellow
fi
done
done
# report status to Hobbit Server
$BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date`
${MSG}
"
exit 0
-----------------------
AC INPUT VOLTAGE SCRIPT
-----------------------
#!/bin/bash
#
# waa - 20080616 - in-voltage.sh
#
# William A. Arlofski
# Reverse Polarity, LLC
# 860-824-2433 Office
# http://www.revpol.com/
#
# 20080319 - Initial version
#
# - Client script for use with Hobbit monitoring server
# and NUT UPS monitoring software
#
###############################################################################
#
# Copyright (C) 2008 William A. Arlofski - waa-at-revpol-dot-com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# or visit http://www.gnu.org/licenses/gpl.txt
#
###############################################################################
# -----------------------------
# Set up some initial variables
# -----------------------------
upsc="/usr/bin/upsc"
nutserver="UPS fqdn or IP Address"
upslist="apc1500-115 apc1500-117"
datatest="input\.voltage:"
yellowvoltage="1150"
redvoltage="1090"
# ----------------
# hobbit variables
# ----------------
COLUMN=in-voltage
COLOR=green
MSG=""
for server in $nutserver; do
for ups in $upslist; do
data=`"$upsc" "$ups"@"$server" 2>&1 | grep "$datatest" | cut -d' ' -f2`
datanopoint=`echo "$data" | sed -e 's/\.//'`
MSG="${MSG}
$ups : $data"
if [ "$datanopoint" -le "$redvoltage" ]; then
COLOR=red
elif [ "$datanopoint" -lt "$yellowvoltage" ]; then
COLOR=yellow
fi
done
done
# report status to Hobbit Server
$BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date`
${MSG}
"
exit 0
------------------------
AC OUTPUT VOLTAGE SCRIPT
------------------------
#!/bin/bash
#
# waa - 20080616 - out-voltage.sh
#
# William A. Arlofski
# Reverse Polarity, LLC
# 860-824-2433 Office
# http://www.revpol.com/
#
# 20080319 - Initial version
#
# - Client script for use with Hobbit monitoring server
# and NUT UPS monitoring software
#
###############################################################################
#
# Copyright (C) 2008 William A. Arlofski - waa-at-revpol-dot-com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# or visit http://www.gnu.org/licenses/gpl.txt
#
###############################################################################
# ---------------------
# Set up some variables
# ---------------------
upsc="/usr/bin/upsc"
nutserver="UPS fqdn or IP Address"
upslist="apc1500-115 apc1500-117"
datatest="output\.voltage:"
yellowvoltage="1150"
redvoltage="1090"
# ----------------
# hobbit variables
# ----------------
COLUMN=out-voltage
COLOR=green
MSG=""
for server in $nutserver; do
for ups in $upslist; do
data=`"$upsc" "$ups"@"$server" 2>&1 | grep "$datatest" | cut -d' ' -f2`
datanopoint=`echo "$data" | sed -e 's/\.//'`
MSG="${MSG}
$ups : $data"
if [ "$datanopoint" -le "$redvoltage" ]; then
COLOR=red
elif [ "$datanopoint" -lt "$yellowvoltage" ]; then
COLOR=yellow
fi
done
done
# report status to Hobbit Server
$BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date`
${MSG}
"
exit 0
-----------------
UPS % LOAD SCRIPT
-----------------
#!/bin/bash
#
# waa - 20080616 - ups-load.sh
#
# William A. Arlofski
# Reverse Polarity, LLC
# 860-824-2433 Office
# http://www.revpol.com/
#
# 20080319 - Initial version
#
# - Client script for use with Hobbit monitoring server
# and NUT UPS monitoring software
#
###############################################################################
#
# Copyright (C) 2008 William A. Arlofski - waa-at-revpol-dot-com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# or visit http://www.gnu.org/licenses/gpl.txt
#
###############################################################################
# ---------------------
# Set up some variables
# ---------------------
upsc="/usr/bin/upsc"
nutserver="UPS fqdn or IP Address"
upslist="apc1500-115 apc1500-117"
datatest="ups\.load:"
yellowload="800"
redload="900"
# ----------------
# hobbit variables
# ----------------
COLUMN=ups-load
COLOR=green
MSG=""
for server in $nutserver; do
for ups in $upslist; do
data=`"$upsc" "$ups"@"$server" 2>&1 | grep "$datatest" | cut -d' ' -f2`
datanopoint=`echo "$data" | sed -e 's/\.//'`
MSG="${MSG}
$ups : $data"
if [ "$datanopoint" -ge "$redload" ]; then
COLOR=red
elif [ "$datanopoint" -ge "$yellowload" ]; then
COLOR=yellow
fi
done
done
# report status to Hobbit Server
$BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date`
${MSG}
"
exit 0
----[end of client external scripts ]----
--
Bill Arlofski
Reverse Polarity, LLC
waa at revpol.com
http://www.revpol.com/
* Stop the NSA from illegally eavesdropping on your personal email *
Learn about PGP and start encrypting your email today
http://gnupg.org or http://www.pgp.com
More information about the Xymon
mailing list