Monitoramento UPS · 10 min read · Oct 16, 2025

Monitorando o Status de Energia do UPS Usando Network UPS Tools (NUT) 2.2.0 em Vários Servidores OpenSuSE 10.3

Monitorando o Status de Energia do UPS Usando Network UPS Tools (NUT) 2.2.0 em Vários Servidores OpenSuSE 10.3

Network UPS Tools é uma coleção de programas que fornece uma interface comum para monitorar e administrar hardware de UPS.

O objetivo principal do projeto Network UPS Tools (NUT) é fornecer monitoramento confiável do hardware de UPS e garantir shutdowns seguros dos sistemas que estão conectados.

Este é um projeto em desenvolvimento para monitorar uma grande variedade de hardware de UPS. Muitos modelos têm portas na parte de trás para permitir que outros devices verifiquem o status. Se ele fornece informações básicas sobre a energia e o status da bateria, provavelmente pode ser suportado sem muita dificuldade. Recursos mais avançados em modelos de alta gama também são suportados para permitir o rastreamento de valores ao longo do tempo, como temperatura e voltagem.

Comunicações de rede são usadas para que múltiplos sistemas possam monitorar um único UPS físico e desligar juntos, se necessário, sans qualquer “hardware de compartilhamento” especial no próprio UPS.

Pré-instalação

Antes de ter tudo funcionando no servidor, conecte o UPS a uma tomada de energia e conecte o cabo de sinal (serial ou USB) ao servidor que executará o upsd. Não conecte nenhum cabo de energia do servidor à tomada do UPS até que você se sinta confiante com o funcionamento do NUT e como ele se comporta com seu hardware. Muitas vezes é aconselhável usar uma carga fictícia, como uma lâmpada, ao testar o UPS. Isso também mostrará quando o UPS fornece energia e quando está desligado, dando-lhe a oportunidade de experimentar com segurança e ganhar confiança com os comandos de uma forma que você não pode fazer uma vez que conecte um servidor de produção ao UPS.

Instalação

Instale o pacote RPM do nut. Se você usar o YaST2, pacotes necessários serão adicionados automaticamente. A partir da linha de comando, você pode usar

yast2 -i nut

como root.

No OpenSuSE 10.3, você terá o nut 2.2.0 instalado.

Isso colocará todos os binários necessários no seu caminho e um conjunto de arquivos de configuração esqueleto. Você terá que editar os arquivos como root para definir seu hardware de UPS.

Configuração

Configuração de um UPS conectado localmente

Abra um shell root, ou use, por exemplo,

sudo vi

para editar os arquivos de configuração.

No arquivo /etc/ups/ups.conf você tem uma seção fictícia com valores padrão que se parece com isto:

[myups]
       driver = undefined
       port = /dev/undefined
       desc = "Local UPS"

Edite o arquivo e defina o driver para apontar para o driver correto para seu UPS, a porta para onde você conectou o cabo de sinal e adicione uma descrição. Veja /usr/share/nut/driver.list para uma lista de marcas e modelos suportados.

Aqui está minha entrada para um APC SmartUPS 1400 conectado à porta serial.

[apc_smartups_1400]
       driver = apcsmart
       port = /dev/ttyS0
       desc = "APC SmartUPS 1400"

Você deve modificar o arquivo /etc/ups/upsd.users para configurar usuários e permissões. As senhas são geradas automaticamente durante a instalação, então você pode deixá-las definidas para esses valores aleatórios se quiser. Se você quiser usar uma senha que possa lembrar, edite o arquivo. Existem duas entradas no arquivo padrão, eu também adicionei um usuário admin para que eu possa calibrar e testar o UPS a partir da linha de comando.

Observe que esses usuários só podem se conectar a partir do localhost, então por enquanto a segurança não é um grande problema aqui. Com escravos remotos, você deve usar uma senha mais avançada do que a que eu tenho nesses exemplos.

Aqui estão os três usuários definidos no arquivo /etc/ups/upsd.users.

[upsmaster]
        password = masterpass123
        allowfrom = localhost
        upsmon master
[upsslave]
        password = slavepass123
        allowfrom = localhost
        upsmon slave
[upsadmin]
        password = upspass
        allowfrom = localhost
        actions = SET
        instcmds = ALL

O daemon upsd apenas consulta o UPS, você precisa de outros programas para verificar o status do upsd. Edite os arquivos de configuração deles para refletir o novo nome do UPS e o login e a senha.

/etc/ups/upsmon.conf
# MONITOR myups@localhost 1 upsmaster 67fc9377aa master
MONITOR apc_smartups_1400@localhost 1 upsmaster masterpass123 master

Eu também prefiro receber um aviso “wall” quando a energia é restaurada caso eu trabalhe remotamente e haja uma breve falha de energia. Altere a linha:

NOTIFYFLAG ONLINE   SYSLOG

para

NOTIFYFLAG ONLINE   SYSLOG+WALL

no arquivo /etc/ups/upsmon.conf.

/etc/ups/hosts.conf é apenas para os programas CGI incluídos, mas você pode adicionar as informações corretas aqui também

/etc/ups/hosts.conf
# MONITOR myups@localhost "Local UPS"
MONITOR apc_smartups_1400@localhost "APC SmartUPS 1400"

Agora podemos finalmente iniciar todos esses programas:

rcupsd start

linux:~ # rcupsd start
Starting NUT UPS drivers done
Starting NUT UPS server done
Starting NUT UPS monitor done

Verifique se você está funcionando e se pode ler os valores armazenados do UPS. Primeiro liste os dispositivos disponíveis com

upsc -l

… então leia todos os valores com:

upsc 

linux:~ # upsc -l
apc_smartups_1400
linux:~ # upsc apc_smartups_1400
battery.alarm.threshold: 0
battery.charge: 100.0
battery.charge.restart: 00
[…]

Testando

Antes de conectar seu servidor à energia, teste uma falha de energia realista desconectando o cabo de energia da unidade UPS. Ele deve falhar para a bateria e você receberá uma mensagem de aviso. Se você estiver logado e executando o KDE, você receberá um popup do KWrited com uma mensagem como:

Broadcast Message from upsd@linux
(somewhere) at 22:51
UPS apc_smartups_1400@localhost on battery

Conecte o cabo novamente e observe as mensagens tranquilizadoras de que a energia foi restaurada.

Broadcast Message from upsd@linux
(somewhere) at 22:51
UPS apc_smartups_1400@localhost on line power

Se isso funcionar, você pode desligar seu servidor e conectar o cabo de energia ao UPS. Em caso de falha de energia, você receberá as mensagens que viu durante o teste. Uma vez que a carga da bateria esteja tão baixa que o UPS envie um sinal de “bateria baixa”, o NUT desligará o servidor. Você pode ser capaz de definir esse limite nos registros do UPS, ou você terá que scriptar algo que faça um

shutdown -h -t

(halt do sistema após ) assim que o UPS estiver na bateria, e então faça um

shutdown -c

(cancelar desligamento) quando o UPS estiver de volta à energia da linha. Nem todos os dispositivos UPS enviarão essa mensagem de “restaurado”, no entanto. É aqui que você só precisa testar e personalizar.

Executando seu equipamento no UPS

Então seu servidor está agora funcionando com energia da bateria até que as baterias acabem. Você pode querer realmente executar o servidor até que as baterias falhem, apenas para ter uma ideia de quanto tempo de bateria você tem. A maioria dos dispositivos UPS pode mostrar a carga e uma porcentagem de carga da bateria. Os UPS são ótimos quando você está trabalhando em algo realmente importante e há um breve pico de energia ou queda de tensão, e em caso de uma queda de energia prolongada, você pode fazer a máquina suspender, hibernar ou desligar quando as baterias estiverem baixas.

Se você configurar seu BIOS para iniciar a máquina automaticamente quando começar a receber energia, ela será iniciada automaticamente quando a energia for restaurada. Em caso de falhas de energia recorrentes, você não quer manter um servidor funcionando e drenar as baterias. Apenas pense em um UPS como uma unidade que o protege de picos e surtos de energia, e pode proporcionar um desligamento limpo em caso de falha de energia. Não execute um servidor com bateria apenas porque você pode. As baterias em um UPS não devem ser drenadas, e quando a energia é restaurada, normalmente levam algumas horas para restaurar a carga total. Você não quer executar os servidores sem uma rede de segurança logo após uma queda de energia - desligue os servidores com bastante carga de bateria restante e guarde-a para o período difícil logo após a restauração da energia, quando todos os aparelhos em toda a cidade começam a ligar simultaneamente e começam a consumir energia. Pelo mesmo motivo, limite o que você mantém no UPS a servidores importantes. Não se esqueça de adicionar hardware de suporte necessário, como equipamentos de rede, KVMs e monitores necessários para operar os servidores durante a falha de energia. Evite executar impressoras e a maioria das estações de trabalho com energia do UPS. Mantenha luz de emergência na sala do servidor para que você possa trabalhar lá quando as luzes normais estiverem apagadas. Se você mantiver os servidores funcionando por um tempo com sua própria fonte de energia (como um gerador), você pode até querer manter o HVAC na mesma energia para evitar o superaquecimento da sala.

Além disso, lembre-se de que quando todo o equipamento começa a consumir energia ao mesmo tempo - servidores e estações de trabalho iniciam simultaneamente, todos os monitores e luzes acendem e impressoras a laser começam a aquecer - você deve esperar que um ou dois fusíveis queimem. O que então prolonga sua queda de energia. Certifique-se de que todo o equipamento não crítico esteja desligado durante falhas de energia e ligado manualmente novamente depois.

Clientes remotos

Permitindo clientes remotos

Agora que você sabe que o UPS local está funcionando como deveria - mantendo o servidor funcionando com energia e notificando o SO via porta serial ou USB - você pode querer conectar mais servidores às outras tomadas de energia. No entanto, há apenas um cabo USB ou serial. É aqui que você precisa do daemon upsd do NUT na máquina com o cabo serial para notificar os outros servidores pela rede.

Comece editando o /etc/ups/upsd.conf para permitir clientes. Aqui toda a sub-rede é permitida, você pode querer torná-la mais específica e incluir apenas IPs específicos.

ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACL upsnet  192.168.1.0/24
ACCEPT localhost
ACCEPT upsnet
REJECT all

Agora permita que o escravo se conecte a partir dessa rede em /etc/ups/upsd.users:

[upsslave]
        password = slavepass123
        allowfrom = localhost upsnet
        upsmon slave

Reinicie o daemon upsd novamente para aplicar as mudanças.

rcupsd restart

linux:~ # rcupsd restart
Shutting down NUT UPS monitor done
Shutting down NUT UPS server done
Shutting down NUT UPS drivers. done
Starting NUT UPS drivers done
Starting NUT UPS server done
Starting NUT UPS monitor done

Ou melhor, recarregue a configuração, isso é muito mais rápido do que reiniciar os daemons quando você só precisa reconfigurar qualquer configuração, exceto as configurações do driver que exigem uma reinicialização do serviço como acima.

rcupsd reload

linux:~ # rcupsd reload
Reload service NUT UPS (excluindo upsdrvctl) done

E permita os clientes através do firewall (OpenSuSE por padrão executa um firewall iptables chamado SuSEfirewall). upsd escuta na porta TCP 3493, e por padrão escuta em todas as interfaces.

Crie uma definição de serviço SuSEfirewall2, uma vez que o RPM não incluiu uma. Faça um novo arquivo chamado /etc/sysconfig/SuSEfirewall2.d/services/upsd. com este conteúdo:

# Descrição do serviço para upsd, o daemon UPS do NUT
# (Network UPS Tools)
#
## Nome: NUT upsd
## Descrição: Permite monitoramento remoto do status de energia do UPS
# lista separada por espaços de portas TCP permitidas
TCP="3493"
# lista separada por espaços de portas UDP permitidas
UDP=""
# lista separada por espaços de serviços RPC permitidos
RPC=""
# lista separada por espaços de protocolos IP permitidos
IP=""
# lista separada por espaços de portas de broadcast UDP permitidas
BROADCAST=""

Agora inicie

YaST

como root e escolha “Segurança e Usuários” -> “Firewall”. Selecione a rede correta e escolha NUT upsd na lista suspensa. Adicione o serviço e clique no botão Avançar. Isso adiciona upsd à lista de serviços permitidos na variável FW_CONFIGURATIONS_EXT no script de configuração /etc/sysconfig/SuSEfirewall2. A porta 3493 agora está permitida através do firewall iptables.

Configurando clientes remotos

Instale nut em uma máquina remota, esta é chamada linux64.

Comente tudo em /etc/ups/ups.conf uma vez que não temos um UPS local conectado:

#[myups]
#       driver = undefined
#       port = /dev/undefined
#       desc = "Local UPS"

Edite /etc/ups/upsmon.conf para monitorar o servidor onde o UPS está conectado:

#MONITOR myups@localhost 1 upsmaster 04fb251a3f master
MONITOR apc_smartups_1400@linux 1 upsslave slavepass123 slave

Adicione o servidor UPS a /etc/ups/hosts.conf:

#MONITOR myups@localhost "Local UPS"
MONITOR apc_smartups_1400@linux "APC SmartUPS 1400"

Agora inicie o serviço upsd, que ignorará o upsd real e o driver do UPS uma vez que estão não configurados, e apenas iniciará o upsmon.

rcupsd start

linux64:~ # rcupsd start
Starting NUT UPS monitor done

Verifique se a conexão está funcionando e se você pode ler os valores de status do servidor UPS remoto.

upsc apc_smartups_1400@linux

linux64:~ # upsc apc_smartups_1400@linux
battery.alarm.threshold: 0
battery.charge: 094.0
battery.charge.restart: 00
[…]

Teste o UPS novamente e verifique se o novo cliente também recebe as mensagens

Broadcast Message from upsd@linux64
(somewhere) at 0:13 …
UPS apc_smartups_1400@linux on battery

Conecte o cabo de energia deste servidor ao UPS, e agora você tem dois servidores protegidos de quedas de energia e ambos estão monitorando o status da energia.

Referências

  • A página inicial do Network UPS Tools (NUT)
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.