Instale o Poder: Como Ligar o Seu UPS à Inteligência de Grafana
Com um simples cabo USB e uma UPS APC BX1500M, é possível revolucionar a forma como gere a energia dos seus dispositivos. Combinando Docker, Telegraf, InfluxDB e Grafana num ambiente Linux (neste caso, Debian), pode criar um painel de controlo visual, reactivo e informativo que revela exactamente quanto consome cada watt.
Etapa 1: Preparação do Servidor Linux Debian
Comece por garantir que a UPS está devidamente ligada à porta USB. Verifique a sua detecção com o comando lsusb
— deverá surgir algo como:
Bus 002 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Agora, instale os pacotes cruciais com um simples comando:
apt install apcupsd php -y
Interrompa o serviço com:
systemctl stop apcupsd
Edite o ficheiro /etc/apcupsd/apcupsd.conf
, definindo um UPSNAME
apelativo (ex.: UPSNAME superups
) e comentando qualquer linha DEVICE
. Reinicie o serviço com:
systemctl start apcupsd
systemctl status apcupsd
Se o comando apcaccess
devolver uma parede de dados detalhada sobre a sua UPS, parabéns — está pronto para integrar com InfluxDB!
Etapa 2: Criação da Base de Dados InfluxDB para a UPS
Para isolar e organizar os dados da UPS, crie uma base de dados dedicada com:
curl -i -XPOST "http://localhost:8086/query?q=CREATE+DATABASE+ups"
Valide a sua criação:
curl -i -XPOST "http://localhost:8086/query?q=SHOW+DATABASES"
Etapa 3: Extração de Dados da UPS com Script PHP
Graças a um brilhante script desenvolvido por Viaduct (Unraid), pode agora extrair os dados directamente da UPS e enviá-los para a base de dados.
#!/usr/bin/php
<?php
$command = "apcaccess";
$args = "status";
$tagsArray = array("LOADPCT", "BATTV", "TIMELEFT", "BCHARGE");
$call = $command." ".$args;
$output = shell_exec($call);
foreach ($tagsArray as $tag) {
preg_match("/".$tag."\s*:\s([\d|\.]+)/si", $output, $match);
sendDB($match[1], $tag);
}
function sendDB($val, $tagname) {
$curl = "curl -i -XPOST 'http://influxDBIP:8086/write?db=ups' --data-binary 'APC,host=superups ".$tagname."=".$val."'";
$execsr = exec($curl);
}
?>
Grave o ficheiro (ex.: /opt/scrape.php
), torne-o executável com chmod +x /opt/scrape.php
, e teste-o.
Etapa 4: Automatização com Cron — Dados em Tempo Real, Sempre!
Configure o cron para correr este script a cada minuto — dados sempre actualizados, sem qualquer esforço:
* * * * * root /usr/bin/php /opt/scrape.php >/dev/null 2>&1
Confirme que o InfluxDB regista os dados com sucesso através de logs com resposta 204 — sinal de que tudo está a funcionar na perfeição.
Etapa 5: Painel de Controlo em Grafana — Visualização Poderosa com um Clique
Adicione a fonte de dados em Grafana:
Tipo: InfluxDB
URL: http://influxdb:8086
Base de Dados: ups
Utilizador: root
Senha: root
(ajuste conforme necessário)
Depois, importe o painel com o ID 7197 criado por Marius Gilberg — uma obra-prima de visualização energética com métricas como carga da bateria, autonomia, tensão, consumo e mais.
Configuração Inteligente
Personalize parâmetros como moeda, capacidade da UPS e custo por kWh diretamente no dashboard — controlo absoluto em tempo real, sem complicações.
BOOM! Está a operar um sistema de monitorização energética doméstico de nível profissional — tudo com Linux, Docker, Grafana e um toque de engenho.
hashtags:
#Grafana #LinuxPower #MonitorizacaoUPS #EnergiaInteligente #Debian #InfluxDB #Docker #PHP #Tecnologia #ServidoresLinux