Monitorização de UPS com Grafana em Linux: Transforme o Seu Sistema Numa Central de Controlo de Energia em Tempo Real

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:

Bash
Bus 002 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply

Agora, instale os pacotes cruciais com um simples comando:

Bash
apt install apcupsd php -y

Interrompa o serviço com:

Bash
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:

Bash
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:

Bash
curl -i -XPOST "http://localhost:8086/query?q=CREATE+DATABASE+ups"

Valide a sua criação:

Bash
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.

Bash
#!/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:

Bash
* * * * * 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

Artigos Relacionados