The Network UPS Tools are a set of open-source programs that facilitate UPS monitoring in a networked environment using a client/server model.
The Network UPS Tools ("NUT" for short) are a set of programs for monitoring UPSes and reacting to power events. They operate off a client/server model, so a single "master" host may be directly connected to a UPS and a number of "slave" hosts can get the UPS's status from the master.
NUT supports redundant power supplies; a full NUT configuration can define how many power supplies each monitored UPS powers (usually one or none) and how many power supplies the system needs in order to keep running. This allows NUT to only shut systems down when absolutely necessary.
NUT can communicate with UPSes over a variety of channels, including network, RS232, and USB. Different UPSes are supported to varying degrees; some UPSes communicate via open or published protocols and are well supported, while others use proprietary protocols that many not have been fully reverse-engineered yet. There is a hardware compatibility list detailing current support.