APCUPSD 用户手册
Netdata官网
Netdata文档
前言
对于许多在家设有Homelab的朋友而言,不间断电源/UPS (Uninterruptible Power Supply)作为备用电源是必备的设施。但是包含SNMP管理系统的UPS通常是价格昂贵的商用级设备,价格一般远超个人用户能承担的预算。在APC的UPS设备中,一般用USB-RJ45 10P串口进行UPS的数据传输,APC也给出了跨平台的程序来进行备用电池的简单管理,但远远简陋于SNMP管理系统,也无法完成多设备的关机这样的操作。Apcupsd是一个免费的APC电源控制程序,它可以像SNMP管理系统一样对UPS进行性能监控并在断电时有序地关闭电源系统下的设备。
Netdata是一个免费开源的Linux网络和设备健康监控程序,其监控指标广泛,支持原生网页图表,上手难度低,是一个理想的监控方案。最关键的是它的监控指标包含了Apcupsd,因此本文使用它作为APC电源的性能可视化监控程序。
硬件设置
- 将USB-RJ45的数据传输线连接于APC电源设备和监控主机,我的UPS型号为
BR1500MS
是这样的情况,但还有一些型号是USB-USB的连接方式,本质是一样的。 如果你的监控主机是一个虚拟机,你可能需要将对应的USB控制器直通至对应的虚拟机。你可以使用
lsusb
`命令来查看当前连接至Linux主机的USB设备,对于APC电源,你应该可以看到一条名为American Power Conversion Uninterruptible Power Supply
的设备yum install -y libusbx libusb usbutils lsusb
安装apcupsd
运行快速软件包升级
yum update -y
安装apcupsd
yum install -y apcupsd
编辑配置文件,你可以阅读apcupsd配置文档或配置文件内的注释来自行做出合适的设置
vim /etc/apcupsd/apcupsd.conf
配置文件中需要注意以下配置内容
# 以下是apcupsd的基本通用设置 UPSCABLE usb UPSTYPE usb DEVICE LOCKFILE /var/lock UPSCLASS standalone UPSMODE disable # 建议 POLLTIME 30 #每30秒轮询UPS状态的时间 ONBATTERYDELAY 10 #断电后10秒后做出管理反应 BATTERYLEVEL 5 #UPS电量低于5%时立刻关机 MINUTES 3 #UPS电量剩余小于3分钟时立刻关机 ANNOYDELAY 30 #UPS断电30秒后通知用户
添加apcupsd systemd (
/etc/systemd/system/apcupsd.service
)并写入以下内容[Unit] Description=APC UPS Power Control Daemon for Linux [Service] ExecStartPre=-/bin/rm -f /etc/apcupsd/powerfail ExecStart=/sbin/apcupsd -b -f /etc/apcupsd/apcupsd.conf [Install] WantedBy=multi-user.target
- 启动apcupsd服务
systemctl daemon-reload
systemctl enable apcupsd
systemctl start apcupsd
- 此时当你输入
apcaccess
命令时,你应当能看到类似于下图这样的UPS状态信息
安装Netdata
- Netdata已经提供了常见环境(比如Linux系统,Docker,K8S,macOS)的快速安装方案,你可以在Netdata文档中查到所有解决方案
在这里我使用Linux下的单行bash,设置版本为稳定版,并关闭了匿名统计信息上传
bash <(curl -Ss https://my-netdata.io/kickstart.sh) --stable-channel --disable-telemetry
- 该命令会自动安装所需要的环境并安装Netdata程序
- 安装完成后会有如下的提示
- Netdata默认开启外部访问,你只需要访问
http://IP:19999
即可访问到Netdata的面板
- 你可以根据Netdata官方文档对你的Netdata节点进行合适的配置
在右侧栏,你应该可以看到
UPS local
这一代表UPS电源的分类- 其中具体包含了以下监控内容,但根据具体UPS型号不同,并不所有监控指标都可用
- UPS Load 电源负载率
- UPS Charge 电池电量
- UPS Time Remaining 电池剩余时间
- UPS Battery Voltage 电池电压
- UPS Temperature 电池温度
- UPS ONLINE flag 电源在线状态 (在线时为1)
- UPS Input Voltage 电源输入电压
- UPS Input Frequency 电源输入频率
- UPS Output Voltage 电源输出电压
转载请标注来源