Monitoraggio Consumi nel CED Synaprtica con SNMP e App Delphi Cross-Platform

Nel nostro centro elaborazione dati (CED) ho realizzato un sistema su misura per monitorare i consumi elettrici delle apparecchiature, con l’obiettivo di migliorare l’efficienza, prevenire overload e ottimizzare l’uso delle risorse.
Perché un sistema personalizzato?
Il mio obiettivo era duplice:
- Monitorare i consumi energetici in modo dettagliato per ogni singolo dispositivo, al fine di individuare sprechi, verificare i carichi in tempo reale e storicizzarli per analisi a lungo termine.
- Non avere limiti sui device da monitorare, posso personalizzare gli agent di monitoraggio senza avere i limiti di soluzioni già pronte.
- Prevenire situazioni di sovraccarico, con un sistema intelligente che comunica con il gestionale per spegnere automaticamente le macchine secondarie non critiche.
Dispositivi monitorati
Il sistema interroga periodicamente dispositivi PDU APC Metered e UPS agli ioni di litio (Li-Ion) APC Schneider Electric, entrambi compatibili con SNMP v1/v2c.
Vengono raccolti dati su:
- Consumo totale e per presa (PDU)
- Stato batterie e autonomia (UPS)
- Corrente, tensione e potenza attiva
Tecnologia e strumenti utilizzati
Ho sviluppato applicazioni (Agenti) Delphi 12.2 compatibili con Windows e Linux per interrogare i dispositivi via SNMP, elaborare i dati e inviarli in formato Excel al gestionale Xtumble che mi permette poi di avere i dati storicizzati in cloud, consultabile via web, ma principalmente associare ai centri di costo appropriato tutte le rilevazioni di consumo.
Grazie ad Xtumble evito di dover sviluppare tutte le features di invio mail, push notifications e allarmi che sono già gestite di base dal gestionale, mi basta configurare le regole di avviso.
In Delphi, l’accesso SNMP è stato realizzato con il componente TidSNMP della libreria Indy.
Esempio codice Delphi con TidSNMP
var
SNMP: TidSNMP;
begin
SNMP := TidSNMP.Create(nil);
try
SNMP.Host := '192.168.1.100';
SNMP.Community := 'public';
SNMP.Query.Clear;
SNMP.Query.Add('1.3.6.1.4.1.318.1.1.12.1.16.0');
SNMP.SendQuery;
if SNMP.Reply.Count > 0 then
ShowMessage('Consumo: ' + SNMP.Reply.ValueFromIndex[0] + ' Watt');
finally
SNMP.Free;
end;
end;
Analisi SNMP preliminare con snmpwalk
Per capire quali OID fossero disponibili, abbiamo usato snmpwalk
su Linux:
snmpwalk -v2c -c public 192.168.1.100
Questo ci ha permesso di individuare i parametri più utili da monitorare.
Integrazione con il gestionale
I dati raccolti vengono salvati in file Excel che vengono inviati e importati dal gestionale Xtumble per:
- Archiviazione e storicizzazione
- Analisi e generazione report con dati aggregati e automazione mail
- Invio di allarmi via mail o push notifications
- Attivazione automatica di azioni (es. spegnimento VM secondarie)
Espansioni previste
In fase di sviluppo:
- Alert via email o Telegram
- Dashboard web interattiva
- Integrazione con sistemi di automazione (es. Ansible)
Se vuoi saperne di più su come integrare SNMP in Delphi o monitorare dispositivi APC, scrivimi nei commenti!