Apcupsd
使用 apcupsd 监控 USB 连接的 APC UPS
本 Wiki 页面展示了如何安装和配置 apcupsd 软件包,以监控和报告 APC 品牌 USB 连接的不间断电源 (UPS) 的统计信息。示例中使用的 UPS 型号是 APC SmartUPS 1000,但任何 APC 或兼容型号都应该有效。
最终目标是使 UPS 状态在网络上可用,以便可以对其进行监控,并用于触发家庭自动化系统(如 Home Assistant)中的操作。
安装和配置 apcupsd
第一步是添加 apcupsd 的 alpine 软件包。之后,我们将重命名默认配置文件,并将其替换为我们的示例 USB 连接的 APC Smart-UPS 所需的参数。
安装通过 APK 软件包进行
# apk add apcupsd
有一个名为 /etc/apcupsd/apcupsd.conf 的主配置文件,其中包含所有可调整的参数以及许多注释。我们将保留原始文件作为参考,然后编辑参数以适合。
# mv /etc/apcupsd/apcupsd.conf /etc/apcupsd/apcupsd.conf~ # grep -v '^\s*$\|^\s*\#' /etc/apcupsd/apcupsd.conf~ >/etc/apcupsd/apcupsd.conf
现在,使用原始文件的备份副本作为注释的参考,编辑 /etc/apcupsd/apcupsd.conf 中的参数。下面列出了一些重要的参数,按出现顺序排列。
- UPSNAME - 这是用于标识您的 UPS。确切格式并不重要,但请保持简短且不要使用空格。
- UPSCABLE - 对于 USB 连接的 UPS,请使用值 usb
- USBTYPE - 类似于 USBCABLE,使用 usb
- DEVICE - 对于 USB 连接的 UPS,不需要此参数。通过在开头使用 # 注释掉此行。
这四个更改足以开始。其他所有内容都可以保留为默认值。阅读原始 apcupsd.conf~ 文件中的注释,以了解其他参数的作用以及是否要使用它们。
启动 apcupsd
apcupsd 软件包安装了一个服务,允许您使用标准工具控制 apcupsd。以下示例展示了如何启动它并确保每次系统启动时都启动。
alpine:/# rc-service apcupsd start * Starting APC UPS daemon ... alpine:/# rc-update add apcupsd * service apcupsd added to runlevel default
检查配置
apcaccess 命令将通过 apcupsd 守护程序的网络端口与 UPS 通信,并报告它找到的内容。这是测试您的连接和配置的好方法。
成功的测试将类似于下面显示的内容。
alpine:/# apcaccess APC : 001,043,1022 DATE : 2024-10-12 15:31:10 +0000 HOSTNAME : alpine.home VERSION : 3.14.14 (31 May 2016) unknown UPSNAME : SmartUPS_1000 CABLE : USB Cable DRIVER : USB UPS Driver UPSMODE : Stand Alone ...
实际报告的参数列表要长得多,但前几行显示了迄今为止在配置中自定义的参数。如果您看到消息Error contacting apcupsd @ localhost:3551: Connection refused,请检查以确保 apcupsd 服务正在运行。
配置和测试电子邮件警报
apcupsd 将使用 /etc/apcupsd 目录中的 shell 脚本发送重要事件的警报。下面列出了这些脚本及其警报功能。
- changeme - 当电池达到其使用寿命末期时发送警报
- commfailure - apcupsd 无法与 UPS 通信
- commok - 与 UPS 的通信在故障后已恢复
- offbattery - UPS 在电池供电后恢复到市电供电
- onbattery - ups 已切换到电池供电
所有脚本都具有类似的设置,并依赖于两个环境变量 SYSADMIN 和 APCUPSD_MAIL 来传递电子邮件警报。要测试警报,请临时导出这两个变量,并从命令行运行其中一个脚本。下面的示例展示了如何为电池更换发送测试警报。
# export SYSADMIN=root # export APCUPSD_MAIL=mail # sh /etc/apcupsd/changeme
如果一切顺利,您应该收到一封电子邮件,告诉您 UPS 电池现在需要更换。如果您发现需要为 SYSADMIN 或 APCUPSD_MAIL 使用不同的值,请务必在 /etc/apcupsd/apccontrol 中进行这些更改。测试中使用的导出变量是临时的,将在您注销后丢失。
后续步骤
可以进行进一步配置以使用 apcupsd.conf 中的参数启动自动关机(有关详细信息,请参阅原始注释文件 apcupsd.conf~)。您还可以使用 Home Assistant 和 APC UPS Daemon 集成通过家庭自动化监控 UPS。