Proteção de Energia e UPS no Linux: Desligar Servidores com o NUT
O Inimigo Silencioso: O Que Acontece Quando a Eletricidade Falha de Repente
Na administração de infraestruturas, passas semanas a proteger os teus servidores Linux contra ataques externos, a configurar regras no firewall e a ajustar índices na base de dados. No entanto, uma das causas mais comuns de perda catastrófica de dados não envolve nenhum hacker: basta uma trovoada mais forte mandar abaixo o quadro elétrico do escritório ou uma obra na rua cortar o cabo de energia do edifício.
Quando a eletricidade cai num piscar de olhos, os servidores não se desligam: sofrem uma paragem violenta.
Naquele milissegundo:
- Os Dados Pendentes em RAM Desaparecem: O Linux guarda gigabytes de alterações em memória volátil antes de as escrever no disco físico. Com o corte de corrente, esses dados evaporam-se no ar.
- Corrupção de Registos de Transação (WAL): Bases de dados relacionais como o PostgreSQL mantêm registos de escrita prévia (Write-Ahead Logs). Uma paragem forçada deixa blocos a meio, exigindo reparações demoradas no arranque seguinte.
- Danos no Controlador dos Discos SSD: Os controladores NVMe gerem tabelas internas complexas de tradução de blocos (FTL). Um corte súbito a meio de um ciclo de escrita pode inutilizar o disco de forma permanente.
O IMPACTO DE UM CORTE DE ENERGIA SEM PROTEÇÃO
- Falha Geral na Rede Elétrica Pública
- A Fonte do Servidor Desliga-se Instantaneamente!
- DANOS IMEDIATOS:
- Memória volátil com escritas pendentes: PERDIDA!
- Transação na base de dados interrompida: Exige recuperação!
- Tabela FTL do disco SSD corrompida: Risco de avaria física!
Ter uma UPS (Unidade de Alimentação Ininterrupta) ligada à tomada é apenas metade da solução. Uma bateria sem software inteligente apenas adia o desastre durante quinze minutos até a carga acabar.
Para cumprires os padrões de resiliência do nosso alojamento gerido, precisas de instalar o Network UPS Tools (NUT) para orquestrares o encerramento automático e gracioso de todos os teus servidores.
A Arquitetura do NUT: Uma Única Bateria Para Todo o Bastidor
Uma boa UPS de 1500VA ou 3000VA (como as da APC, Eaton ou CyberPower) consegue alimentar vários equipamentos no teu bastidor: o servidor principal de virtualização, o servidor de ficheiros NAS e o router de rede.
No entanto, a UPS física tem apenas uma porta de comunicação USB. Como é que os três servidores sabem a percentagem restante da bateria?
O Network UPS Tools (NUT) resolve isto com uma arquitetura distribuída de cliente e servidor:
ARQUITETURA DE REDE DO NETWORK UPS TOOLS (NUT)
- Bateria UPS Física: (Cabo USB de Telemetria: percentagem de carga e estado)
- SERVIDOR NUT / NÓ PRIMÁRIO (servidor01.interno)
- Driver usbhid-ups: Lê os dados do hardware por USB
- Daemon upsd: Transmite telemetria na porta 3493 da rede local
- Monitor upsmon master: Coordena o encerramento geral
- (Envia estado da bateria pela rede interna)
- CLIENTE NUT (servidor02): Corre: upsmon slave • Desliga-se quando carga <20%
- CLIENTE NUT (servidor03 - NAS): Corre: upsmon slave • Desliga-se quando carga <20%
- Driver de Hardware (
usbhid-ups): Comunica diretamente com a UPS pelo cabo USB. - Servidor de Rede (
upsd): Partilha as métricas na porta TCP 3493 com as restantes máquinas da rede local. - Agente de Monitorização (
upsmon): Corre em todas as máquinas. Os nós secundários (slaves) desligam-se primeiro para aliviar a bateria; o nó primário (master) encerra por último e desliga a UPS.
Configurar o Servidor NUT no Teu Servidor Debian
No servidor fisicamente ligado à UPS pelo cabo USB, instala os pacotes oficiais no Debian:
sudo apt-get update
sudo apt-get install -y nut nut-client nut-server
1. Configurar o Driver da UPS
Edita o ficheiro /etc/nut/ups.conf:
# /etc/nut/ups.conf
maxretry = 3
[ups-bastidor]
driver = usbhid-ups
port = auto
desc = "APC Smart-UPS 1500VA do Bastidor Principal"
pollinterval = 5
Testa a ligação física executando sudo upsdrvctl start.
2. Ativar o Serviço de Rede (upsd)
Edita o /etc/nut/upsd.conf para escutar na rede local:
# /etc/nut/upsd.conf
LISTEN 127.0.0.1 3493
LISTEN 192.168.10.10 3493
Define as credenciais de acesso em /etc/nut/upsd.users:
# /etc/nut/upsd.users
[upsmon_master]
password = ChaveSeguraMaster2026
upsmon master
[upsmon_slave]
password = ChavePartilhadaSlaves2026
upsmon slave
3. Configurar o Daemon de Monitorização (upsmon)
Edita o /etc/nut/upsmon.conf:
# /etc/nut/upsmon.conf no Nó Primário
MONITOR ups-bastidor@localhost 1 upsmon_master ChaveSeguraMaster2026 master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD /usr/local/bin/notificar-ups.sh
POLLFREQ 5
POLLFREQALERT 2
FINALDELAY 5
Define MODE=netserver em /etc/nut/nut.conf e reinicia os serviços através do systemd:
sudo systemctl restart nut-server nut-client
Podes consultar o estado da bateria com upsc ups-bastidor@localhost:
battery.charge: 100
battery.runtime: 2450
input.voltage: 230.2
ups.load: 24
ups.status: OL
O estado OL (On-Line) confirma que o servidor está a trabalhar normalmente com eletricidade da rede pública.
Configurar os Servidores Secundários na Rede Local
Nas restantes máquinas ligadas à mesma bateria, instalas apenas o agente de cliente:
sudo apt-get install -y nut-client
Ajustas o /etc/nut/nut.conf para MODE=netclient e configuras o /etc/nut/upsmon.conf:
# /etc/nut/upsmon.conf nos Nós Secundários
MONITOR ups-bastidor@192.168.10.10 1 upsmon_slave ChavePartilhadaSlaves2026 slave
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD /usr/local/bin/notificar-ups.sh
Ativa o serviço:
sudo systemctl enable --now nut-client
Se faltar a eletricidade, a UPS entra no modo OB (On Battery). Se a carga cair para o limiar de emergência, o nó primário emite a ordem de paragem forçada (FSD). Todos os servidores secundários fecham as suas aplicações e desligam-se de forma controlada.
SEQUÊNCIA DE ENCERRAMENTO COORDENADO
- 00:00 - Falha de corrente! A UPS assume a carga a bateria (Status: OB).
- 06:00 - A bateria atinge o nível crítico de segurança (Status: OB LB).
- 06:01 - O Master emite a ordem de encerramento geral pela rede local.
- 06:02 - Os servidores secundários fecham serviços e desligam-se.
- 06:03 - O Master confirma que as outras máquinas já estão desligadas.
- 06:04 - O Master grava caches no disco, fecha a base de dados e desliga-se.
- 06:05 - A UPS corta a alimentação das tomadas. Zero perda de dados!
Desta forma, evitas qualquer corrupção em disco, cumprindo o princípio de anti-over-engineering.
Reinício Automático: Configurar o AC Power State na BIOS
Um sistema de proteção de energia só é perfeito se funcionar sem intervenção humana: não queres apenas que as máquinas se desliguem em segurança, mas também que arranquem sozinhas assim que a eletricidade voltar.
Para garantires isto:
- Entras nas definições da BIOS/UEFI da motherboard do servidor.
- Procuras a secção de gestão de energia (Power Management).
- Alteras o parâmetro AC Power Recovery (ou Restore on AC Power Loss) de
Power OffparaPower On.
Quando o NUT conclui o encerramento, manda a UPS cortar as tomadas. Quando a eletricidade pública regressar, a UPS volta a alimentar as saídas. A motherboard deteta a corrente nova e liga o servidor automaticamente sem ninguém ter de carregar em botões no datacenter. Tens mais scripts de apoio no GitHub.
Boas Práticas Operacionais: Testes de Bateria e Notificações
Nas rotinas regulares de manutenção desenhadas pela WebXtek, aplica estas recomendações fundamentais:
- Faz Testes de Carga Semestrais: As baterias de chumbo perdem capacidade química com o passar dos anos. Uma bateria que indica 100% no ecrã pode descarregar em 20 segundos se já estiver gasta. Dispara testes de calibração duas vezes por ano para confirmares a autonomia real.
- Cuidado com a Temperatura da Sala: Manter as UPS em locais quentes degrada as células de bateria muito mais depressa. Cada aumento de 8°C na temperatura ambiente reduz a vida útil da bateria para metade.
- Envia Notificações Automáticas: Liga o script de alerta do NUT para receberes um aviso no telemóvel no segundo exato em que a luz falhar:
# Em /usr/local/bin/notificar-ups.sh curl -s -X POST -H 'Content-type: application/json' \ --data "{\"text\":\"⚡ *Alerta de Energia em $(hostname)*: $NOTIFYTYPE - UPS: $UPSNAME\"}" \ https://webhook.interna/alertas
Se a tua empresa precisa de desenhar soluções físicas de hardware e garantir a continuidade de negócio dos teus servidores locais, a nossa equipa de consultoria técnica apoia o desenho e implementação de infraestruturas resilientes.
Na prática, aplicas exatamente estes padrões operacionais em setores exigentes como especialistas em devops e arquitetura cloud e provedores de cloud computing e iaas. Quando alinhas a tua estrutura através de alojamento gerido para websites e aplicações e consultoria técnica antes de construir, transformas boas práticas técnicas numa vantagem competitiva real e mensurável para o teu negócio.
[+] [ INDEX_DIRECTORY ] 17 tópicos ▼
- O Inimigo Silencioso: O Que Acontece Quando a Eletricidade Falha de Repente
- A Arquitetura do NUT: Uma Única Bateria Para Todo o Bastidor
- Configurar o Servidor NUT no Teu Servidor Debian
- 1. Configurar o Driver da UPS
- 2. Ativar o Serviço de Rede (upsd)
- 3. Configurar o Daemon de Monitorização (upsmon)
- Configurar os Servidores Secundários na Rede Local
- Reinício Automático: Configurar o AC Power State na BIOS
- Boas Práticas Operacionais: Testes de Bateria e Notificações
- Autor
- Perguntas Frequentes
- O que acontece aos sistemas de ficheiros no Linux durante um corte súbito de energia?
- Qual é a diferença entre ligar a UPS diretamente por USB e usar a rede com o NUT?
- Qual é a diferença entre o modo master (primário) e o modo slave (secundário) no upsmon?
- Como garantir que os servidores voltam a ligar sozinhos quando a eletricidade regressar?
- Nós Relacionados
- Sequência do Caminho
Perguntas Frequentes
O que acontece aos sistemas de ficheiros no Linux durante um corte súbito de energia?
Os dados pendentes que estavam na memória RAM volátil perdem-se antes de serem gravados no disco. As transações na base de dados em PostgreSQL ficam interrompidas e os controladores de discos SSD NVMe podem corromper as suas tabelas internas de mapeamento de memória flash.
Qual é a diferença entre ligar a UPS diretamente por USB e usar a rede com o NUT?
Ligar apenas o cabo USB permite controlar apenas uma máquina. O Network UPS Tools (NUT) cria uma arquitetura de cliente e servidor na rede local: o servidor lê a telemetria da bateria por USB e avisa todos os outros servidores Linux do bastidor por rede para se desligarem em simultâneo.
Qual é a diferença entre o modo master (primário) e o modo slave (secundário) no upsmon?
O nó secundário (slave) recebe o aviso de bateria fraca e desliga-se de imediato para poupar energia da UPS. O nó primário (master) aguarda que todos os secundários terminem a sua paragem, desliga a base de dados em segurança e ordena à própria UPS que corte a alimentação.
Como garantir que os servidores voltam a ligar sozinhos quando a eletricidade regressar?
O NUT envia um comando de corte programado à UPS antes de se desligar. A UPS corta a saída de corrente passado meio minuto. Na BIOS das motherboards dos servidores, configuras a opção AC Power Recovery para Power On, garantindo que as máquinas arrancam sozinhas assim que a eletricidade voltar.
[ RELATED_NODES ]
> INICIAR_PROJETO
Precisa de um website que transmita confiança, apareça na pesquisa e dê mais força à sua presença digital? Comece a conversa aqui.