Monitor your ups using mrtg

For a long time i wanted to monitor my UPS a APC SmartUPS 700VA using mrtg.
The main problem is that the ups doesn’t support snmp.

APCUPSD is a great program to monitor your ups (battery level, Load, etc) and shutdown your pc when the battey level is below a value. But it doesn’t provide snmp info.

Lucky for us, APCUPSD provides a tool (apcaccess ) to show the values that it can read from your ups. With the help of apcaccess, grep, awk and a shell script you can use it to feed the values to mrtg.

Step 1
Create the following script
[code]#!/bin/sh
#

a=`/sbin/apcaccess | grep LOADPCT | awk {‘print $3’}`

echo $a
echo 0
echo 0
echo ups[/code]
Name it apcups.sh and put it on /usr/local/bin

Step 2
Create the following mrtg configuration file
[code]
WorkDir: /var/www/html/mrtg-ups

Target[ups]: `/usr/local/bin/apcups.sh`
MaxBytes[ups]: 100
Title[ups]: Ups Load
PageTop[ups]: UPS Load
Options[ups]: growright, gauge, nopercent
YLegend[ups]: percent
Legend1[ups]: UPS Load
Legend2[ups]:
LegendO[ups]:
LegendI[ups]: UPS Load
ShortLegend[ups]: %[/code]

And make sure that workdir exists.

Then put a cronjob to run that script every 5 minutes
[code]
*/5 * * * * root /usr/bin/mrtg path_to_your_mrtg-ups.cfg_file
[/code]

If you want to speed the thinks up, run it 2 times then have look on the Workdir to see that the files have been generated succefull.

I use it to monitor the UPS load only, of course it can be modified to monitor also battery level, line voltage etc.

Nice ? 🙂 🙂

Comments

2 responses to “Monitor your ups using mrtg”

  1. Mike Avatar
    Mike

    Why not just create your own mib and serve apcaccess out through SNMP?

  2. billy Avatar

    Cause it is easier using a script :). Honest answer: i didn’t think the SNMP as on option at all