使用网络UPS工具监视Windows工作站UPS

什么时候会出现监视工作站不间断电源的任务? 吱吱作响-更换完毕。 维修UPS是一项艰巨的任务,需要更换电池-并非每个人都想弄乱(甚至是坏人)。

所以我想,尤其是在一系列UPS的电子设备出现故障之后。 制造商的软件加剧了这种情况。 他,尽管说得有些客气,但还是很烂。 每个人都有APC,Ippon,Powercom,TrippLite。 什么服务器,什么用于工作站。 在体验免费版本之后尝试付费版本-没有欲望。 当UPS来自不同的制造商时,这真的很有趣。

但是监视仍然是必要的。 优势显而易见:1)您可以在发出告别声之前先更换UPS; 2)您可以立即看到电池电量耗尽的地方以及电子设备在哪里。
减号一如既往地简单:决策成本,以金钱或工时表示。

我们将解决这个问题。

如果我们有动物园,那么最合适的方法是Network UPS Tools

关于Windows的信息很少,并且还没有GUI。 但是我们会解决的

公平地讲,应该注意到Python中有一个类似的项目 。 但是对我个人而言,似乎完全没有必要使用Python(和类似的技术解决方案),您可以在其中使用几行本机脚本。

免责声明
  • 这不是“现成的解决方案”。
  • 这不是一个句子,而是一个故事。
  • 是的,有Zabbix,Cacti等,对于那些需要专用服务器以及某种中间层来支持相应的UPS协议的大型公司来说,这些都是重量级的解决方案。
  • 通过以上所有操作,解决方案非常简单,非常容易,并且成本为0货币。


当然,要收集信息,您需要具有信息端口的UPS。 我的IPPON COM端口有问题,其他所有东西都正常工作。

通常对于工作站,UPS通过USB连接,我们将考虑这种情况。 您需要在所有装有UPS的工作站上安装NUT。
可能的问题:

  • > libusb驱动程序最好单独安装 。 包括的人员并不了解所有UPS。
  • 如果libusb提供了标准名称HID UPS Battery ,则需要更改它 -使用标准名称,某些系统由于某种原因看不到UPS;
  • 如果安装过程中显示消息“ 没有数字签名的驱动程序 ”,则需要手动重新安装 ,否则会崩溃;
  • 如果libusb无法识别UPS型号,则首次安装驱动程序不正确! 错误“ upsmon ERROR ACCESS DENIED”指示此错误,否则驱动程序仅崩溃。 您需要:停止NUT服务,删除libusb驱动程序,等待直到安装了“ USB输入设备”,然后再次为其手动选择libusb驱动程序;
  • 对于NUT,您需要第三方库 ,该未包含在安装工具包中。 安装程序会谈论此问题,但谁会读到它呢:)另外,通常系统已经具有带有这些库的软件。 绝对需要:libeay32.dll,ssleay32.dll,libgcc_s_dw2-1.dll(位于NUT-bin文件夹中),libusb.dll(位于libusb分发工具包中),msvcr71.dll(包含在Net Framework 1.1中)。 所有这些文件应位于Windows \ System32文件夹中;
  • 有时,您需要在ups.conf中为USB UPS指定bus =“ bus-0”;
  • 在快速计算机和某些网卡上,NUT服务的启动要早于驱动程序和/或网络接口。 在这种情况下,启动类型“启动(延迟启动)”会导致错误“ upsc ERROR DATA STALE”。 解决方案:创建一个任务,该任务将在Network UPS Tools源中出现代码为1的事件时检查upsd进程并重新启动Network UPS Tools服务;下载任务的xml文件;下载脚本(应位于NUT \ others文件夹中)。

在客户端上半自动安装NUT的示例脚本:

N:\NUT-Installer-2.6.5-6.msi /qn copy N:\dll\ssleay32.dll C:\Windows\System32 /Y copy N:\dll\libeay32.dll C:\Windows\System32 /Y copy N:\dll\libgcc_s_dw2-1.dll C:\Windows\System32 /Y copy N:\dll\libusb.dll C:\Windows\System32 /Y copy N:\etc\* "%programfiles%\NUT\etc" rem  IP-    NUT  SET IP=192.168.100.10 set ip_address_string="IP Address" rem Uncomment the following line when using Windows 7 (with removing "rem")! set ip_address_string="IPv4-" REM echo Network Connection Test for /f "usebackq tokens=2 delims=:" %%f in (`ipconfig ^| findstr /c:%ip_address_string%`) do SET IP=%%f ECHO LISTEN %IP% 3493 >> "%programfiles%\NUT\etc\upsd.conf" rem   libusb  N:\libusb-win32-bin-1.2.6.0\bin\inf-wizard.exe rem  ,     notepad "%programfiles%\NUT\etc\ups.conf" notepad "%programfiles%\NUT\etc\upsmon.conf" pause net use N: /delete /Y 

如何理解为什么NUT在Windows下不起作用:

  • 我们检查进程中是否有nut.exe
  • 如果存在,请检查upsd.exe和upsmon.exe
  • 如果upsd不在进程中,请转到nut \ sbin并用手运行:
  • “因为没有dll,所以无法启动Upsd”-检查system32中的dll,以防万一重启。
  • “创建命名管道的Upsd错误”-upsd已在运行
  • 它启动并立即关闭-在LISTEN部分中的upsd.conf中检查ip地址,如果计算机上有DHCP,则尤其如此;
  • upsd已启动,但没有看到UPS-安装或重新安装libusb,检查system32中的libusb.dll,从HID UPS Battery中重命名设备;
  • 如果upsd开始,请转到bin并运行upsc our_ups @ localhost
  • “由于缺少dll,无法启动Upsc”-我们检查库;
  • “ Upsc失败的连接未知错误”-检查upsd和upsmon是否正在运行,仔细检查upsmon.conf中的MONITOR部分,再次检查dll库;
  • “ Upsc错误数据陈旧”-UPS只能启动一次并且无法再使用,然后重新安装libusb驱动程序并重命名HID UPS电池,或者NUT服务的上升速度超过网络接口或USB UPS可见的速度,重新启动服务;
  • “ Upsmon错误访问被拒绝”-如上所述,重新安装驱动程序。

对于监视服务器,您需要:

  • NUT在独立模式下;
  • 任何使用php和mysql的Web服务器。 我正在使用统一服务器
  • 库中的MySQL数据库和www文件夹,以及那里的几个批处理脚本。

我们将SQL和www数据库放在网络北部的相应目录中。 将batch_scripts中的脚本复制到NUT安装文件夹中。 我们启动Web服务器,然后传递给localhost / index_ups.php 。 以格式UPS_name @ host添加任何客户端UPS。 运行get_ups_list_mysql.cmd脚本。 我们检查。 好好享受

图片

除了当前状态,我们还能看到什么有用的东西? 例如:

  • 如果最小电池电压接近10,最好提前更换;
  • 在正常电压值下,UPS故障很可能与电子设备故障有关(您的K.O.);
  • 超过70%的负载是不希望的,如果100%与自检事件无关,则是不正常的;
  • 最小电池电量少于30%表示在客户端放电时电池故障或自动关机设置不正确。

几点:

  • 可以通过单击标题对列进行排序;
  • 最大值/最小值显示为当前斜线,临界值标记为红色;
  • 请小心使用“自检”按钮。

如果有人在Windows下安装/运行NUT时遇到问题-请编写,我们将一起解决。

感谢您的关注!

Source: https://habr.com/ru/post/zh-CN421039/


All Articles