Embedded Network UPS Tools (NUT)
Network UPS Tools (NUT) is a group of open source programs that provide a common interface for monitoring and administering UPS hardware; and ensuring safe shutdowns of the systems which are connected.
The latest release of NUT (2.4) also controls PDU systems. It can do this either natively using SNMP or through a binding to Powerman (open source software from Livermore Labs that also is embedded in Opengear console servers)
NUT is built on a networked model with a layered scheme of drivers, server and clients.

- The driver programs talk directly to the UPS equipment and run on the same host as the NUT network server (upsd). Drivers are provided for a wide assortment of equipment from most of the popular UPS vendors and understand the specific language of each UPS. They communicate to serial, USB and SNMP network connected UPS hardware and map the communications back to a compatibility layer. This means both an expensive "smart" protocol UPS and a simple "power strip" model can be handled transparently
- The NUT network server program upsd is responsible for passing status data from the drivers to the client programs via the network. upsd can cache the status from multiple UPSes and then serve this status data to many clients. upsd also contains access control features to limit the abilities of the clients (e.g. so only authorized hosts may monitor or control the UPS hardware)
- There are a number of NUT clients that connect to upsd to check on the status of the UPS hardware and do things based on the status. These clients can run on the same host as the NUT server or they can communicate with the NUT server over the network (enabling them to monitor any UPS anywhere):
- The upsc client provides a quick way to poll the status of a UPS server. It can be used inside shell scripts and other programs that need UPS data but don't want to include the full interface
- The upsmon client enables servers that draw power through the UPS to shutdown gracefully when the battery power reaches critical
- There are also logging clients (upslog) and third party interface clients
This layered NUT architecture enables:
- Multiple manufacturer support: NUT can monitor UPS models from 79 different manufacturers - and PDUs from a growing number of vendors - with a unified interface
- Multiple architecture support: NUT can manage serial and USB connected UPS models with the same common interface. Network connected USB and PDU equipment can also be monitored using SNMP
- Multiple clients monitoring the one UPS: Multiple systems may monitor a single UPS using only their network connections and there's a wide selection of client programs which support monitoring UPS hardware via NUT (Big Sister, Cacti, Nagios and more)
- Central management of multiple NUT servers: A central NUT client can monitor multiple NUT servers that may be distributed throughout the data center, across a campus or around the world

