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 nutcomo 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 vipara 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 = ALLO 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 masterEu 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 SYSLOGpara
NOTIFYFLAG ONLINE SYSLOG+WALLno 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 startlinux:~ # 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
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 allAgora permita que o escravo se conecte a partir dessa rede em /etc/ups/upsd.users:
[upsslave]
password = slavepass123
allowfrom = localhost upsnet
upsmon slaveReinicie o daemon upsd novamente para aplicar as mudanças.
rcupsd restartlinux:~ # 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 reloadlinux:~ # 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
YaSTcomo 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 slaveAdicione 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 startlinux64:~ # 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@linuxlinux64:~ # 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)
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.