I recommend using Network UPS Tools (NUT) - an open-source library of software and drivers which support a vast variety of UPS devices.
While much of the support in this project relies on unofficial / reverse-engineered compatibility, it seems to be much simpler to install and configure rather than using the proprietary software and drivers provided by the OEM.
The biggest benefit to NUT is that many OEM's force you to purchase a very expensive UPS just to get a device having compatibility with their management software on Linux. Because of this, most entry-level devices will only communicate with the watered-down Windows software they provide. NUT provides this capability to Linux users without needing the official software.
APC and CyberPower are two of the most popular hardware OEMs for UPS. If you browse NUT's website, you'll see a list of all compatible OEMs and models. From what I've seen, many people have reported success with NUT even on models not listed on the website.
One last important thing: Make sure the UPS supports USB (communication, not just charging) or Ethernet. Many entry-level devices may have no means of communication, others will use connections less common (RS-232) in consumer products, and some will require you to purchase a network card to add Ethernet.