点击关注我的Telegram群组和微信公众号

MENU

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

2021 年 07 月 17 日 • 阅读: 256 • 技术,教程

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 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状态信息

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监控

最后编辑于: 2021 年 07 月 19 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码