找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 13196|回复: 130

[虚拟机相关] pve下连接山特UPS,作为NUT服务给威联通NAS并关机

 火.. [复制链接]
发表于 2023-10-23 15:53 | 显示全部楼层 |阅读模式
使用环境 软路由主机PVE7.4+威联通NAS物理主机+山特TGBOX 850 UPS



1、首先执行lsusb 看到下面的信息,代表已经正确识别usb的ups


  1. root@pve:~# lsusb
  2. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
  3. Bus 001 Device 003: ID 0529:0003 Aladdin Knowledge Systems Sentinel HL
  4. Bus 001 Device 002: ID 0463:ffff MGE UPS Systems UPS
  5. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
已经正确识别UPS了

2、安装nut软件

  1. apt-get install nut nut-server nut-client nut-cgi
复制代码
3、看下ups的信息

  1. nut-scanner
复制代码
显示如下

  1. No start IP, skipping SNMP
  2. No start IP, skipping NUT bus (old connect method)
  3. [nutdev1]
  4.         driver = "usbhid-ups"
  5.         port = "auto"
  6.         vendorid = "0463"
  7.         productid = "FFFF"
  8.         product = "SANTAK TG-BOX"
  9.         serial = "Blank"
  10.         vendor = "EATON"
  11.         bus = "001"
复制代码
4、复制全部内容后,添加到/etc/nut/ups.conf

  1. nano /etc/nut/ups.conf
复制代码
添加查看到的UPS信息
  1. [qnapups]   --我这为了威联通使用,所以将名字改成威联通能识别的,如果群晖要根据实际情况改名字
  2.         driver = "usbhid-ups"
  3.         port = "auto"
  4.         vendorid = "0463"
  5.         productid = "FFFF"
  6.         product = "SANTAK TG-BOX"
  7.         serial = "Blank"
  8.         vendor = "EATON"
  9.         bus = "001"
复制代码
5、修改NUT运行模式

  1. nano /etc/nut/nut.conf
复制代码
6、修改监听配置

  1. nano /etc/nut/upsd.conf
  2. ;文件最后一行加入
  3. LISTEN 0.0.0.0 3493    --允许整个网络
复制代码
7、设置客户端连接密码

  1. nano /etc/nut/upds.users
  2. ;文件最后一行加入
  3. [nutuser]
  4. password = nutpasswd
  5. upsmon maste
复制代码
8、配置CGI服务

  1. nano /etc/nut/hosts.conf
  2. ;文件最后一行加入
  3. MONITOR qnapups[url=home.php?mod=space&uid=467693]@Localhost[/url] 1 nutuser nutpasswd master    --注意UPS的名字要与ups.conf一致
复制代码
9、设置CGI目录安全性

  1. nano /etc/nut/upsset.conf
  2. 文件最后一行加入
  3. I_HAVE_SECURED_MY_CGI_DIRECTORY
复制代码
10、重启下nut相关服务

  1. systemctl restart nut-server.service
  2. systemctl restart nut-driver.service
  3. systemctl restart nut-monitor.service
  4. 查看下运行状态
  5. lsof -i:3493
复制代码

11、配置CGI服务(以支持WEB查看)

  1. nano /etc/apache2/apache2.conf
复制代码
文件最后一行加入

  1. Alias /nut /usr/share/nut/www
  2. <Directory /usr/share/nut/www>
  3.         Options +SymLinksIfOwnerMatch
  4.         AllowOverride All
  5.         Require all granted
  6. </Directory>
复制代码
  1. nano /etc/apache2/conf-available/serve-cgi-bin.conf
复制代码
文件最后一行加入

  1. <IfDefine ENABLE_USR_LIB_CGI_BIN>
  2.                 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  3.                 <Directory "/usr/lib/cgi-bin">
  4.                 AllowOverride None
  5.                                 AddHandler cgi-script .cgi
  6.                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  7.                 Require all granted
  8.                 </Directory>
  9.         </IfDefine>
  10. ScriptAlias /cgi-bin/ /var/www/cgi-bin/
  11.         <Directory "/var/www/cgi-bin">
  12.             Options +Indexes +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  13.             #Require all granted
  14.             Order allow,deny
  15.             Allow from all
  16.             AddHandler cgi-script .py .cgi
  17.             AddHandler default-handler .html .htm
  18. </Directory>
复制代码


重启服务

  1. systemctl  restart apache2
复制代码
之后打开http://ip/nut  就可以看到UPS的状态了



12、配置自动关机

  1. nano /etc/nut/upssched.conf
复制代码
文件最后一行加入

  1. CMDSCRIPT /etc/nut/upssched-cmd
  2. PIPEFN /etc/nut/upssched.pipe
  3. LOCKFN /etc/nut/upssched.lock
  4. AT ONBATT * START-TIMER power-off 40
  5. AT ONLINE * CANCEL-TIMER power-off
  6. AT ONLINE * EXECUTE power-on
复制代码
新建/etc/nut/upssched-cmd文件

  1. nano /etc/nut/upssched-cmd
复制代码
复制添加下面代码
  1. #!/bin/sh
  2. case $1 in
  3.        onbatt)
  4.           logger -t upssched-cmd "UPS running on battery"
  5.                   # do somethings ,e.g.send email \ wechat
  6.           ;;
  7.        earlyshutdown)
  8.           logger -t upssched-cmd "UPS on battery too long, early shutdown"
  9.           /usr/sbin/upsmon -c fsd
  10.           ;;
  11.        shutdowncritical)
  12.           logger -t upssched-cmd "UPS on battery critical, forced shutdown"
  13.           /usr/sbin/upsmon -c fsd
  14.           ;;
  15.        upsgone)
  16.           logger -t upssched-cmd "UPS has been gone too long, can't reach"
  17.           ;;
  18.        *)
  19.           logger -t upssched-cmd "Unrecognized command: $1"
  20.           ;;
  21. esac
复制代码
增加可执行权限

  1. chmod +x /etc/nut/upssched-cmd
复制代码
重启服务,之后就ok了, 威联通NAS添加网络UPS

  1. systemctl restart nut-server.service
  2. systemctl restart nut-driver.service
  3. systemctl restart nut-monitor.service
  4. systemctl  restart apache2
复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
 楼主| 发表于 2023-10-23 15:55 | 显示全部楼层
本帖最后由 zml1985 于 2024-10-2 19:00 编辑

2024-10-02更新一下。
之前PVE7默认国内源的版本都是2.7.4-13 如果直接安装PVE8,国内源的NUT版本都是2.8.0-7  这个版本结合1楼的方法,无法执行upssched.conf,研究了好久也没找到办法,850是一直电池跑完,PVE强制关机了。
所以解决的办法就是删除掉nut2.8.0 安装2.7.4-13
首先卸载nut所有的依赖及配置
  1. apt-get purge nut nut-server nut-client nut-cgi     删除配置
  2. apt-get nut nut-server nut-client nut-cgi   删除依赖
复制代码
之后PVE更换debian官方源
  1. nano /etc/apt/sources.list

  2. deb http://deb.debian.org/debian bookworm main
  3. deb-src http://deb.debian.org/debian bookworm main

  4. deb http://deb.debian.org/debian bookworm-updates main
  5. deb-src http://deb.debian.org/debian bookworm-updates main

  6. deb http://security.debian.org bookworm/updates main
  7. deb-src http://security.debian.org bookworm/updates main
复制代码
之后更新软件包列表apt update
查询是否有2.7.4-13的nut相关软件包
apt-cache policy nut nut-server nut-client nut-cgi

如果后面指定版本无法安装了,只能手动下载deb及相关依赖了
https://packages.debian.org/bullseye/nut

手动安装nut2.7.4-13及相关依赖
apt-get install nut=2.7.4-13

apt-get install nut-server=2.7.4-13

apt-get install nut-client=2.7.4-13

apt-get install nut-cgi =2.7.4-13

安装完成之后,配置nut相关即可

之前漏下了,tgbox850 默认是20%触发关机,考虑PVE下虚拟机运行较多,如果只剩20%可能造成电量不足而导致PVE直接断电了
可以在ups.conf中加入

        ignorelb
        override.battery.charge.low = 40    --低于40触发关机
        override.battery.runtime.low = -1  --不使用UPS预计的时间

ups.conf

完整的如下
  1. [qnapups]
  2.         driver = "usbhid-ups"
  3.         port = "auto"
  4.         vendorid = "0463"
  5.         productid = "FFFF"
  6.         product = "SANTAK TG-BOX"
  7.         serial = "Blank"
  8.         vendor = "EATON"
  9.         bus = "001"
  10.         ignorelb
  11.         override.battery.charge.low = 80
  12.         override.battery.runtime.low = -1
复制代码
这样设置,UPS电量低于40,PVE会使用QEMU Guest Agent给虚拟机发送关机信号,所有虚拟机关闭后,PVE关机, 10秒后850自动关机
如果虚拟机无法安装QEMU Guest Agent代理,那就自行通过脚本去处理关机吧。


PS:另外防止PVE换了国内源后,更新软件包会直接把NUT相关更新到最新,可以使用apt-mark hold锁定当前软件包版本
  1. apt-mark hold nut libc6 libgd3 libupsclient4  lsb-base adduser nut-client udev libnspr4 libnss3 libnutscan1 libusb-0.1-4 libwrap0
复制代码

如果其他软件依赖于 libc6 libgd3等等更高的版本,可以尝试将相关依赖解锁,升级需求的版本,之后看看nut是否正常运行

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-23 22:58 | 显示全部楼层
感谢分享 很有用
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-27 11:37 | 显示全部楼层
感谢分享,试试看
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-28 13:20 | 显示全部楼层
APC可以用吗
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-28 14:57 来自手机 | 显示全部楼层
谢谢楼主分享
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-6 18:33 | 显示全部楼层
Not Found
The requested URL was not found on this server.

Apache/2.4.57 (Debian) Server at 192.168.1.3 Port 80

最后网页打不开

点评

执行下  详情 回复 发表于 2023-11-11 18:19
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-8 21:51 | 显示全部楼层
思考侠正需要这个,以前老配置不成功

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-9 16:36 | 显示全部楼层
正好思考一下,以前一直没弄好
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-11 18:19 | 显示全部楼层
tianrenhyb 发表于 2023-11-6 18:33
Not Found
The requested URL was not found on this server.

执行下  
  1. a2enmod cgi
复制代码
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-20 20:51 | 显示全部楼层
感谢分享
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-21 00:02 | 显示全部楼层
感谢大佬的分享,收藏一下,以备后用
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-22 13:38 | 显示全部楼层
好文章-感谢分享-如果给群晖用貌似应给就改下群晖默认的信息就可以了
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-25 10:42 | 显示全部楼层
谢谢分享!!!!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-27 17:46 | 显示全部楼层
感谢分享
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-6-5 23:30

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表