Più volte nei nostri articoli abbiamo parlato di quanto sia importante fondamentale tenere sotto controllo le nostre infrastrutture.
Questo sicuramente vale anche per i semplici UPS, infatti nell’articolo precedente abbiamo parlato di come possiamo monitorare un UPS APC anche senza SNMP grazie ad APC-ScrapConnect.
L’articolo si concludeva con un cliffhanger mica da poco rivelando che APC-ScrapConnect nasce anche con una specifica funzione di discovery per una più facile integrazione con Zabbix, che ne dite la approfondiamo?

I dati sensibili

No, intanto tranquilli che non si parla di GDPR!
I dati di cui interessarci in ambito UPS, e che ovviamente raccoglieremo, più o meno sono i soliti: valori di input, valori di output, stato della batteria e carico assorbito, a questi poi ne aggiungiamo altri specifici della piattaforma SmartConnect.

zabbix apc smartconnect collect

Per quanto possibile recuperiamo tutto il recuperabile, sempre meglio poter abbondare no?

Il setup

Niente di più facile (spero), importiamo il Template, lo associamo all’Host che identifica il nostro UPS, settiamo le macro
{$APCSC.USER}
{$APCSC.PASSWORD}
con i dati di accesso a SmartConnect e… e stop, finito!

Il discovery automatizzato cercherà il primo dispositivo registrato su SmartConnect che abbia IP uguale a quello dell’host UPS definito in Zabbix, oppure, in alternativa, se abbiamo più dispositivi con il medesimo IP impostiamo la macro {$APC.SERIAL} per procedere al discovery per serial number.

L’importanza del discovery

Il problema da affrontare quando hai a che fare con una piattaforma non documentata (a livello di API) è che non hai idea di che dati potrebbe restituirti, l’esempio più lampante? Gli allarmi.

Come valutare se il valore Status, che in condizioni normali è online, quando assume un valore diverso deve essere valutato sempre come Trigger di livello High o meno?

La risposta è discovery: recuperiamo ciclicamente il dictionary della piattaforma che contiene tutte le coppie chiave/valore presenti e lo usiamo nel preprocessing di alcuni Item secondo la severity che APC stessa associa alla chiave:

  • Ongoing INFO condition
  • Ongoing WARNING condition
  • Ongoing ERROR condition

Otteniamo così dei Trigger che saranno assolutamente dinamici e contenenti la stessa descrizione che APC usa sulla sua piattaforma!

Per esempio una notifica SmartConnect come quella nell’immagine che segue viene tradotta nel Trigger Ongoing Error condition con Severity High e Operational data: Communications Lost apc smartconnect notification

Conclusioni

Spero di avervi dato i giusti input per voler provare APC-ScrapConnect su Zabbix con questo Template che trovate come al solito su GitHub.
Ha richiesto una discreta dose di lavoro e non è detto che sia finito qui, per cui ogni feedback è ben accetto.