使用Netdata和apcupsd监控非SNMP UPS的电池状态

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

    USB设备列表

安装 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 服务
  • systemctl daemon-reload
  • systemctl enable apcupsd
  • systemctl start apcupsd
  • 如果报错,手动添加 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
  • 此时当你输入apcaccess命令时,你应当能看到类似于下图这样的 UPS 状态信息
    apcaccess

安装 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 官方文档对你的 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 电源输出电压
      UPS监控

转载自:https://blog.irain.in/archives/apcupsd_netdata_ups_monitoring.html

版权声明:
作者:RuyeNet
链接:https://www.iloveu.top/archives/116
来源:RuyeNet
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录