Using NUT and its Perl library UPS::Nut to log and alert stuff...
Network UPS Tools (NUT) comes with a basic utility (upsmon) that monitors UPS status and can perform a safe shutdown. However, the only criteria it makes a decision on are whether the mains is good and whether the battery is capable of supplying the load for an arbitrary time.
NUT also provides a basic logging utility (upslog) to record UPS statistics. It is not quite up to the job...
I plan to write a script to replace upsmon and upslog.
Requirements:
- Monitor multiple UPSes
- Replicate the decision making part of upsmon: request a shutdown when the UPS runtime is low and the mains has failed.
- Extend upsmon: request a shutdown when UPS temperature exceeds a threshold.
- Replicate upslog, but record data in a more useful format
Possible additional features:
- When shutting down due to over temperature we might not necessarily want to only shut down the one reporting the temperature.
- Perhaps prioritise?
- Data formats: Round-robin? SQLite?
- Automatically generate ups monitoring webpage?
- Dump which clients are monitoring which ups? Requires NUT 2.6.