Monitoramento de UPS da estação de trabalho Windows com ferramentas UPS de rede

Quando surge a tarefa de monitorar a energia ininterrupta nas estações de trabalho? Squeaked - substituído, o fim. Reparar um no-break é uma tarefa ingrata, trocar as baterias - nem todo mundo quer mexer (ou até mesmo um homem mau).

Então pensei, especialmente depois de uma série de no-breaks com falha nos componentes eletrônicos. A situação foi agravada pelo software dos fabricantes. Ele, por assim dizer, lixo. E todo mundo tem APC, Ippon, Powercom, TrippLite. Qual servidor e para estações de trabalho. Tentando versões pagas após a experiência com as gratuitas - não havia desejo. E é realmente divertido quando o no-break é de diferentes fabricantes.

Mas o monitoramento ainda é necessário. As vantagens são óbvias: 1) você pode trocar o UPS ANTES que ele emita um grito de despedida; 2) você pode ver imediatamente onde a bateria está descarregada e onde está a eletrônica.
O menos é simples, como sempre: o custo de uma decisão, em dinheiro ou horas-homem.

Vamos resolver esse problema.

Se tivermos um zoológico, a maneira mais adequada é o Network UPS Tools .

Há pouca informação sobre o Windows e ainda não há GUI. Mas nós vamos resolver isso .

Para ser justo, deve-se notar que existe um projeto semelhante no Python . Mas, pessoalmente, acho completamente desnecessário usar o Python (e soluções técnicas similares) onde você pode conviver com algumas linhas de script nativo.

Isenção de responsabilidade
  • Esta não é uma "solução pronta".
  • Esta não é uma frase, mas uma história.
  • Sim, existem Zabbix, Cacti, etc, e essas são soluções pesadas para grandes empresas que exigem um servidor dedicado e, de qualquer forma, algum tipo de camada intermediária para suportar o protocolo UPS correspondente.
  • Com todas as opções acima, a solução é bastante simples, fácil e custa 0 moeda.


Obviamente, para coletar informações, você precisa de um no-break com uma porta de informações. Estou tendo problemas com a porta IPPON COM, tudo o resto funciona com um estrondo.

Normalmente, para as estações de trabalho, o no-break é conectado via USB e consideraremos esse caso. Você precisa instalar o NUT em todas as estações de trabalho com o UPS.
Possíveis problemas com isso:

  • > O driver libusb é melhor instalado separadamente . Os incluídos não compreendem todos os no-breaks;
  • Se o libusb oferecer o nome padrão HID UPS Battery , você precisará alterá-lo - com um nome padrão, alguns sistemas, por algum motivo, não vêem o UPS;
  • se o processo de instalação exibir a mensagem " Driver sem assinatura digital ", será necessário reinstalá-lo manualmente , caso contrário, ele trava;
  • se o libusb não reconheceu o modelo do no-break, a primeira vez que o driver é instalado INCORRETO! Isso é indicado pelo erro "upsmon ERROR ACCESS DENIED", ou o driver simplesmente trava. Você precisa: parar o serviço NUT, remover o driver libusb, aguardar até que o “dispositivo de entrada USB” esteja instalado, selecionar manualmente o driver libusb novamente;
  • Para o NUT, você precisa de bibliotecas de terceiros , que não estão incluídas no kit de instalação. A instalação fala sobre isso, mas quem a lê :) Além disso, muitas vezes os sistemas já possuem software com essas bibliotecas. Definitivamente necessário: libeay32.dll, ssleay32.dll, libgcc_s_dw2-1.dll (encontrado na pasta NUT-bin), libusb.dll (encontrado no kit de distribuição do libusb), msvcr71.dll (incluído no Net Framework 1.1). Todos esses arquivos devem estar na pasta Windows \ System32;
  • às vezes você precisa especificar bus = "bus-0" para USB UPS no ups.conf;
  • em máquinas rápidas e em algumas placas de rede, o serviço NUT é iniciado mais cedo que o driver e / ou a interface de rede. Nesse caso, o tipo de inicialização "Inicialização (início atrasado)" leva ao erro "upsc ERROR DATA STALE". Solução: crie uma tarefa que verifique o processo upsd quando um evento com o código 1 for exibido na fonte Network UPS Tools e reinicie o serviço Network UPS Tools; faça o download do arquivo xml da tarefa; faça o download do script (ele deve estar na pasta NUT \ others).

Um script de exemplo para a instalação semi-automática do NUT nos clientes:

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 

Como entender por que o NUT não funciona no Windows:

  • verificamos se há nut.exe nos processos
  • se houver, verifique upsd.exe e upsmon.exe
  • se o upsd não estiver em processo, vá para nut \ sbin e corra com as mãos:
  • “O Upsd não pode ser iniciado porque não há dll” - verifique a dll no system32, reinicie apenas por precaução;
  • "Erro Upsd ao criar pipe nomeado" - o upsd já está em execução
  • ele inicia e fecha imediatamente - verifique o endereço IP no upsd.conf na seção LISTEN, especialmente verdadeira se houver um DHCP na máquina;
  • upsd iniciado, mas não vê o no-break - instale ou reinstale o libusb, verifique o libusb.dll no system32, renomeie o dispositivo a partir da bateria HID UPS;
  • se o upsd tiver iniciado, vá para o bin e execute upsc our_ups @ localhost
  • “O Upsc não pode ser iniciado porque a DLL está ausente” - verificamos as bibliotecas;
  • “Upsc failed connection unknown error” - verifique se o upsd e o upsmon estão em execução, verifique cuidadosamente a seção MONITOR no upsmon.conf, verifique as bibliotecas da dll novamente;
  • “Dados de erro de Upsc obsoletos” - ou o no-break foi iniciado uma vez e não funciona mais, reinstale o driver libusb e renomeie a bateria do no-break HID ou o serviço NUT aumentou mais rapidamente do que a interface de rede ou o no-break USB era visível; reinicie o serviço;
  • “Erro Upsmon ACCESS DENIED” - reinstale o driver conforme descrito acima.

Para o servidor de monitoramento, você precisa de:

  • NUT no modo autônomo;
  • qualquer servidor web com php e mysql. Estou usando o servidor uniforme
  • Banco de dados MySQL e pasta www do repositório e alguns scripts em lote a partir daí.

Colocamos o banco de dados SQL e www nos diretórios correspondentes da web north. Os scripts de batch_scripts são copiados para a pasta de instalação do NUT. Iniciamos o servidor web, passamos para localhost / index_ups.php . Adicione qualquer UPS cliente no formato UPS_name @ host. Execute o script get_ups_list_mysql.cmd. Nós verificamos. Aprecie.

imagem

O que podemos ver útil além do estado atual? Por exemplo:

  • se a tensão mínima da bateria for próxima de 10, é melhor substituí-la com antecedência;
  • em valores normais de tensão, uma falha no no-break provavelmente será associada a uma falha nos componentes eletrônicos (sua, K.O.);
  • uma carga de mais de 70% é indesejável, 100 não é normal se não estiver associado a um evento de autoteste;
  • uma carga mínima de bateria inferior a 30% indica mau funcionamento da bateria ou configurações incorretas de desligamento automático quando descarregada no cliente.

Alguns pontos:

  • as colunas podem ser classificadas clicando no cabeçalho;
  • os valores máximo / mínimo são exibidos através de uma barra para os valores atuais, críticos são marcados em vermelho;
  • tenha cuidado com o botão "autoteste".

Se alguém tiver problemas para instalar / executar o NUT no Windows - escreva, descobriremos isso juntos.

Obrigado pela atenção!

Source: https://habr.com/ru/post/pt421039/


All Articles