在Linux读取并且监控APC UPS的状态
我买了一台APC 無停電電源装置 UPS 常時商用給電 550VA/330W BE550M1-JP 矩形波 家庭用。
这么几年我一直都是靠一台Windows上的软件监控的,但是这种每次都要通过眼睛去看的方案并不是特别方便。而且也没有办法查看历史数据。 今天搜索了一下,其实是有linux的方案的。特别在此记录一下 。
APC UPS 连接
我的UPS是通过USB和电脑进行连接的,接好线缆以后执行下面的指令可以看到设备:
$lsusb | grep "American Power"
Bus 002 Device 009: ID 051d:0002 American Power Conversion Uninterruptible Power Supply就说明有希望。
安装相应的软件:
sudo apt update
sudo apt install apcupsd修改配置文件 /etc/apcupsd/apcupsd.conf
确保UPSCABLE是usb,UPSTYPE是usb,DEVICE留空(但是不要注释),类似这种感觉:
UPSCABLE usb
UPSTYPE usb
DEVICE修改配置文件:/etc/default/apcupsd 为
ISCONFIGURED=yes启动服务,设置自启动:
sudo systemctl start apcupsd
sudo systemctl enable apcupsd这个时候执行 apcaccess status 就可以看到UPS的状态了。
类似下面这样:
APC : 001,036,0861
DATE : 2026-05-02 00:05:36 +0900
HOSTNAME : g470
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : g470
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2026-05-01 23:00:20 +0900
MODEL : APC ES 550M1
STATUS : ONLINE
LINEV : 105.0 Volts
LOADPCT : 18.0 Percent
BCHARGE : 100.0 Percent
TIMELEFT : 37.5 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
SENSE : Medium
LOTRANS : 87.0 Volts
HITRANS : 113.0 Volts
ALARMDEL : 30 Seconds
BATTV : 13.7 Volts
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x05000008
SERIALNO : 4B2232P06646
BATTDATE : 2023-02-26
NOMINV : 100 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 330 Watts
FIRMWARE : 933.a7 .A USB FW:a7
END APC : 2026-05-02 00:05:44 +0900 Prometheus监控
我让AI给我推荐了几个方案,比如 mdlayher/apcupsd_exporter ,不过我最后选择了 56quarters/apcmetrics 。
Clone到本地,进入项目文件夹,然后直接 make build,注意,你得先把make和go装上,我很少在服务器上Build软件所以居然都没有装。
然后把Build出来的产物送到bin目录下:sudo mv apcmetrics /usr/local/bin/
按照教程复制Service并且启动就好了。
sudo cp ext/apcmetrics.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable apcmetrics.service完后可以用curl确认一下是不是已经启动了:curl http://127.0.0.1:9780/metrics
在Prometheus里面增加监控项:
scrape_configs:
- job_name: apcmetrics
static_configs:
- targets: [ 'you-ip:9780' ]重启或者Reload即可。
Grafana Dashboard
没找到Dashboard,自己动手撸了一个 很粗糙的版本,以后慢慢优化了。

json配置文件放在这里了,需要的自取。
有些麻烦但是想做的事情
- NAS断电的重启恢复会有些困难,如果能够时刻监控剩余使用时长,在断电前执行关机操作会非常好。
- 重新来电以后树莓派会自动启动 ,这个时候如果能够通过网络自动启动服务器那就更好了。
吐槽
我买UPS才花18000日元,换电池居然也要15000日元,这何尝不是一种计划报废呢?