Mirror host
Other mirrors
Download
  Source
Packages
Support
  Cables
Client projects
Compatibility
Documentation
Driver projects
FAQ
Features
Mailing lists
UPS protocols
Server projects

Network UPS Tools

Features

This list may lag behind the current code. Features frequently appear during the development cycles, so be sure to look at the change logs to see the latest additions.

Multiple manufacturer support

  • Monitors many UPS models from 79 different manufacturers with a unified interface. Even USB and SNMP models are supported with the same common interface. SNMP equipment can also be monitored with two experimental drivers.

Multiple architecture support

  • Cross-platform - different flavors of Unix can be managed together with a common set of tools, even crossing architectures.

  • Win32 platforms can also monitor Unix-hosted hardware with WinNUT.

Layered design with multiple processes

  • Three layers: drivers, server, clients.

  • Drivers run on the same host as the server, and clients communicate with the server over the network.

  • This means clients can monitor any UPS anywhere as long as there is a network path between them. Be sure to plug your network's physical hardware (switches, hubs, routers, bridges, ...) into the UPS!

Common Power Management support

NUT can bridge the driver layer (USB only) onto FreeDesktop HAL - Hardware Abstraction Layer, feeding UPS information for common Power Management applications such as Gnome Power Manager.
These applications also monitors laptop battery, and are generally already available on the system.

Multiple UPS support - Hot swap/high availability power supplies

  • upsmon can handle high-end servers which receive power from multiple UPSes simultaneously.

  • upsmon won't initiate a shutdown until the total power situation across all source UPSes becomes critical (on battery and low battery).

  • You can lose a UPS completely as long as you still have at least the minimum number of sources available. The minimum value is configurable.

Security and access control

  • IP-based access control lists are used to limit access by hosts or networks. Entries may be long-style (192.168.1.0/255.255.255.0) or CIDR-style (192.168.1.0/24).

  • Manager functions are granted with per-user granularity. The admin can have full powers, while the admin's helper can only do specific non-destructive tasks such as a battery test.

  • The drivers, server, and monitoring client (upsmon) can all run as separate user IDs if this is desired for privilege separation.

  • Only one tiny part of one program has root powers.

    upsmon starts as root and forks an unprivileged process which does the actual monitoring over the network.

    They remain connected over a pipe. When a shutdown is necessary, a single character is sent to the privileged process. It then calls the predefined shutdown command. In any other case, the privileged process exits.

    This was inspired by the auth mechanism in Solar Designer's excellent popa3d.

  • The drivers and network server may be run in a chroot jail for further security benefits. This is supported directly as of the NUT 1.4 version and beyond with the chroot= configuration directive.

One UPS, many clients

  • Multiple systems may monitor a single UPS using only their network connections - no special "UPS sharing" hardware is required.

  • "Slave and master" monitoring design synchronizes shutdowns so that slaves can bring down their operating systems cleanly before the master switches off the power.

Many UPSes, many clients

  • Each upsd process can serve status data for multiple UPSes to many clients.

  • Each upsmon process can monitor multiple UPSes for status data.

Web-based monitoring

  • Comes stock with CGI-based web interface tools for UPS monitoring and management, including graphical status displays.

  • Custom status web pages may be generated with the CGI programs, since they use templates to create the pages. This allows you to have status pages which fit the look and feel of the rest of your site.

Other features

  • IP v6 support

Free software

UPS management and control

  • Writable variables may be edited on higher end equipment like APC's Smart/Matrix-UPS models for local customizations

  • Status monitoring can generate pager/SMS notifications on alert conditions

  • Alert notices may be dampened to only trigger after a condition persists. This avoids the usual pager meltdown when something happens and no delay is used.

  • Maintenance actions such as battery runtime calibration are available where supported by the UPS hardware.

  • Power statistics can be logged in custom formats for later retrieval and analysis

  • All drivers are started and stopped with one common program. Starting one is as easy as starting ten: 'upsdrvctl start'.

  • Shutdowns and other procedures may be tested without stressing actual UPS hardware by simulating status values with the dummycons pseudo-driver. Anything which can happen in a driver can be replicated with dummycons.

Monitoring diagrams

These are the most common situations for monitoring UPS hardware. Other ways are possible, but they are mostly variants on these four.

Note that these examples show serial communications for simplicity, but USB and SNMP monitoring is also possible.

"Simple" configuration

Simple diagram

One UPS, one computer. This is the configuration that most users will use. You need at least a driver, upsd, and upsmon running.

"Advanced" configuration

Advanced diagram

One UPS, multiple computers. Only one of them can actually talk to the UPS directly. That's where the network comes in. The Master system runs the driver, upsd, and upsmon in master mode. The Slave systems only run upsmon in slave mode.

This is useful when you have a very large UPS that's capable of running multiple systems simultaneously. There is no longer the need to buy a bunch of individual UPSes or "sharing" hardware, since this software will handle the sharing for you.

"Big Box" configuration

Big Box diagram

Some systems have multiple power supplies and cords. You typically find this on high-end servers that allow hot-swap and other fun features. In this case, you run multiple drivers (one per UPS), a single upsd, and a single upsmon (as master for both UPS 1 and UPS 2)

This software understands that some of these servers can also run with some of the supplies gone. For this reason, every UPS is assigned a "power value" - the quantity of power supplies that it feeds on a system. The total available "power value" is compared to the minimum that is required for that hardware. For example, if you have 3 power supplies and 3 UPSes, but only 2 supplies must be running at any given moment, the minimum would be 2. This means that you can safely lose any one UPS and the software will handle it properly by remaining online.

"Bizarre" configuration

Bizarre diagram

You can even have a UPS that has the serial port connected to a system that it's not feeding. Sometimes a PC will be close to a UPS that needs to be monitored, so it's drafted to supply a serial port for the purpose. This PC may in fact be getting power from some other UPS. This is not a problem.

The first system ("mixed") is a Master for UPS 1, but is only monitoring UPS 2. The other systems are Slaves of UPS 2.

Image credits

Thanks to Luc Descotils and Arnaud Quette at MGE for providing shiny cleaned-up versions of Russell Kroll's old example graphics!

Last updated: 6 February 2004 / rkroll Valid HTML 4.01!