RS232 (I cannot use USB)
If you cannot find one with RS232, but do find one that has USB but has a documented Linux/open source-supported protocol, you can use a microcontroller with USB host, and an RS232 driver (MAX232 or similar) or an UART isolator and level shifter like TI ISO6721 (if your computer/SBC has UARTs instead of RS-232-level ports). I myself would use a Teensy 4, of course, but that's just because it is the microcontroller I know and have that fits the use case.
I suppose ESP32-S2 would be among the cheapest easily available alternatives, 7 or 8€ at Olimex, considering its UART and
USB Host support. I do not have one, though, so I cannot say if it is a
practical option for that.
apcupsd-3.14.14 (latest from 2016) seems to use USB HID (0x84, Power Page); see
HID Usage Tables 1.4 (PDF), page 357:
30 Power Page (0x84). This is closest to a standard I know of.
This means that interfacing to an USB HID Power Page / UPS using a small microcontroller with USB Host port should be simple – comparable to say a force-feedback gamepad or joystick –, but forwarding the same connecting to e.g. apcupsd via UART isn't trivial: you'd need to either write your own apcupsd drivers, or have the microcontroller emulate an older APC UPS.
Instead, I would recommend you use a microcontroller that handles the monitoring, with just a simple text-based serial interface to your computer or SBC, with basically all the monitoring logic in the microcontroller. Remember that the serial connection is full duplex, so design the protocol such that the microcontroller can send events to the SBC/computer even without the computer prompting for it first, i.e. NOT a synchronous-query-response one.
(Personally, I'd have each query and response start with an identifier, with UPS events having a separate space from queries/responses.)