Monitoring Your UPS With apcupsd

Riccardo delves into the details of apcupsd, a program for monitoring and controlling APC UPSes.
Apcupsd Security Issues

apcupsd runs as root. This needs to be considered when installing the software. It needs access to the serial port, System V IPC services and the shutdown program.

If you have switched on the NETSERVER directive in your apcupsd.conf file, be aware that anyone on the network can read the status of your UPS. This may or may not be a problem. If you don't consider this information privileged, there is little risk. In addition, if you have a firewall between your servers and the Internet, intruders will not have access to your UPS information. Additionally, you can restrict access to your apcupsd server by using the INETD services and using access control lists with a TCP wrapper.

If you are running master/slave networking, with a single UPS powering multiple machines, be aware that it is possible for someone to simulate the master and send a shutdown request to all of your slaves. The slaves do check that the network address of the machine claiming to be the master is the same as the address returned by DNS corresponding to the name of the master as specified in your configuration file.

apcupsd's Clients

To ease UPS monitoring, apcupsd offers quite a lot of client facilities. We have already seen apcaccess, the output of which can be seen in Listing 6. apcaccess is the main client tool for monitoring UPS status.

Listing 6

Another console-based client is powerflute that can be used to monitor the UPS status continuously as seen in Figure 3.

In Figure 4 another useful client for networked apcupsd is shown. It is the CGI interface that was integrated into apcupse and enhanced by Kern. If you want to be able to view UPS status from the Web, this is the best choice. Figure 5 shows the status of the UPSes connected to Kern's main server (

Figure 3. Powerflute

Figure 4. CGI Interface: Overview

Figure 5. CGI Interface: Details on One Host

apcupsd is being ported to Win32 (9x and NT) by Kern. At the time of writing, Kern had produced a beta version of apcupsd for Windows. In Figures 6 and 7 apcupsd for Win32 status client is shown.

Figure 6. apcuspd for Win32

Figure 7. acpuspd for Win32

What's Next

apcupsd is still growing. The next version of apcupsd will be a major version change and it will contain the following new main features:

  • Multiple UPS control apcupsd will be able to control more than one UPS connected to the same computer.

  • Network code rewrite apcupsd will be a true network dæmon with strong security features integrated into the code.

  • Complete Win32 support.

  • Ability to perform UPS tests from within client programs.

  • If time permits, another feature, that now is more a dream rather than a development target, is to support other manufacturer's UPSes.

Riccardo Facchetti ( is a research engineer for a scientific instrumentation firm in Milano, Italy. When not sitting in front of his computer, he travels worldwide.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Re: Monitoring Your UPS With apcupsd

Anonymous's picture

Not only is this an excellent review, but its also short, but covers alot of the basic material. Besides from being a review and a tutorial, its a inspiration.

I just bought a APC 1000 and had problems with upsd .. but this made me switch over and are now running apcupsd and made tons of scripts to monitor it .. even mrtg. Wonderfull program :)

Re: Monitoring Your UPS with apcupsd

Anonymous's picture

Nice article.

I will add that we are also successfully monitoring Belkin UPSs with apcupsd.