Monitoraggio Ubiquiti UniFi presso Centreon

Ed è ora di dominare gli AP e gli switch di Ubiquiti! Quindi, se hai un dispositivo di questo tipo nella tua organizzazione… è tempo di centralizzarlo e controllarlo da Centreon. Con il solo fatto di avere tutto supervisionato e anticipare possibili problemi, Avviato! 😛

 

Bene, Per molti dei servizi che andremo a monitorare ci appoggeremo al meraviglioso script check_unifi.php di Jörg Hörter; quindi scaricalo e, come sempre, salvalo nella directory degli script di Centreon. Con questo script potremo ottenere un sacco di informazioni dalla parte UniFi di Ubiquiti, come lo stato di salute di ogni AP, i loro traffici, Clienti, Connessioni, i consumi di risorse… lo stesso per gli switch, e per il controller lo stesso, disponibilità, versione, numero di AP/SW..

Abbiamo bisogno di avere PHP installato sulla macchina e di 'php-curl', una volta installati i requisiti, proviamo a eseguirlo:

yum install php-curl
/usr/bin/php check_unifi.php

 

 

Questo script, se gli passiamo '-h'’ ci darà informazioni con tutte le sue possibilità di utilizzo:

Uso: //usr/bin/php check_unifi.php -H [controller] -u [controlleruser] -p [controllerpassword] -P [controllerport] -m [modo] -A [Accesspoint] -w [Avvertimento] -c [Critico] (-S [site] -s =https -C [configfile]) -d =debug)

modo - controller                                = Versione del Controller, avviso se c'è un aggiornamento
       site                                      = elenca tutti gli ID e i nomi dei siti
       clients                                   = elenca tutti i clienti (usa solo in console)
       clients_wifi ( + Accesspoints)            = elenca tutti i clienti wifi con velocità di connessione, opzionale per un accesspoint (usa solo in console)
       clients_name + Accesspoint                = elenca tutti i clienti di un accesspoint
       clients_name_guest + Accesspoint          = list all clients and guests of an accesspoint
       clients_count + Accesspoint               = count clients of an accesspoint
       clients_count_guest + Accesspoint         = count clients and guests of an accesspoint
       channels + Accesspoint                    = channels 2GHz/5GHz of an accesspoint
       transfer + Accesspoint                    = rx/tx transfer of an accesspoint (KBit/MBit)
       transfer+ + Accesspoint                   = rx/tx transfer of an accesspoint (KByte/MByte)
       Uptime + Accesspoint/Switch               = uptime and firmware of an accesspoint/switch
       update + Accesspoint/Switch               = update firmware is available of an accesspoint/switch and warn/critical (point release, major version, minor version)
       uplink + Accesspoint warn crit            = uplink of an accesspoint (wireless: with connection speed and warn/critical)
       experience + Accesspoint warn crit        = wireless experience of an accesspoint with warn/critical
       utilisation + Accesspoint warn crit       = wireless utilisation of an accesspoint with warn/critical (2GHz,5GHz)
       mem + Accesspoint warn crit               = memory usage output Mb of an accesspoint or a switch with warn/critical percent
       mem% + Crit di avviso punto di accesso = percentuale di utilizzo di memoria in uscita di un punto di accesso o di uno switch con percentuale di avviso/critico
 CPU + Crit di avviso Accesspoint/Switch = uso combinato cpu e carico di un punto di accesso o di uno switch con percentuale di avviso/critico
 cpu% + Crit di avviso Accesspoint/Switch = utilizzo CPU di un punto di accesso o di uno switch con carica di avviso/critico
 + Crit di avviso Accesspoint/Switch = utilizzo di caricamento Linux di un accesspoint o di uno switch con avviso/critico 1,5,15
       temperatura + Switch                      = temperatura di uno switch con avviso/critico
       ap avviso critico                              = conteggio Accesspoint (Online e Offline) con Accesspoint offline in stato di avviso e critico
       switch avviso critico                          = conteggio Switch (Online e Offline) con Switch offline in stato di avviso e critico


-C   - file di configurazione (default=unifi.php) invece dei parametri del controller -H,-u,-p,-P,-s -S (puoi specificare qualsiasi file con percorso)
       esempio:

       <?php
       $host='192.168.2.213';    # IP o Nome Host del server controller unifi
       $prot='https';            # Valore http o https
       $port='8443';             # Porta del Controller
       $user='nagios';           # Loginuser Controller
 $pass='nagios';           # Password Loginuser
 $siteid='default';        # ID del sito $dir_unifi_client='';     # Directory unifi_client.php
       ?>

 

Bene, si queréis cacharrear en shell y ver cómo va/probarlo, os dejo unos ejemplos, no son todas las posibilidades, pero sí los que consideré más útiles (Per me):

Comprobar versión del Controller y da Warning si hay update:

/usr/bin/php /usr/lib/centreon/plugins/check_unifi.php/check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m controller -s https

 

Clientes por cada AP:

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m clients_count -a NOMBRE_AP -s https

 

Canales 2GHz/5GHz de cada AP:

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m channels -a NOMBRE_AP -s https

 

Comprobar versión de firmware de los AP/SW:

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m update -a NOMBRE_AP -s https

 

Calidad de la experiencia del AP:

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m experience -a NOMBRE_AP -w 90: -c 80: -s https

 

CPU del AP/SW

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m cpu% -a NOMBRE_AP -w 80 -c 90 -s https

 

Memoria del AP/SW

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m mem% -a NOMBRE_AP -w 80 -c 90 -s https

 

Carga del AP/SW

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m load -a NOMBRE_AP -w 4,3,2 -c 6,5,4 -s https

 

Temperatura del SW

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m temperature -a NOMBRE_SWITCH -w 40 -c 50 -s https

 

Uptime del SW o del AP

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m uptime -a NOMBRE_SWITCH -w 80 -c 90 -s https

 

Número de APs

/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m ap -w 1 -c 0 -s https

 

Numero de SWs
/usr/bin/php ./check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m switch -w 1 -c 0 -s https

 

Ora, una vez que hayas cacharreado y probado, es hora de llevarlo como siempre a Centreon, come al solito, inicialmente definiremos los Comandos que necesitaremos para crear luego los Servicios que nos interesen. En mi caso he creado estos 4 Comandi, os los dejo por si queréis copiarlos, unos van con más o menos argumentos y la posibilidad de meterle Warning / Critical si nos interesase. Stiamo per “Configurazione” > “Comandi” > “Controlli” > “Aggiungere…”

  • Nombre del comando: check_unifi.php
  • Línea de comandos: /usr/bin/php $CENTREONPLUGINS$/check_unifi.php/check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m $ARG1$ -s https

 

  • Nombre del comando: check_unifi.php_wc
  • Línea de comandos: /usr/bin/php /usr/lib/centreon/plugins/check_unifi.php/check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m $ARG1$ -w $ARG2$ -c $ARG3$ -s https

 

  • Nombre del comando: check_unifi.php_a
  • Línea de comandos: /usr/bin/php /usr/lib/centreon/plugins/check_unifi.php/check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m $ARG1$ -a $ARG2$ -s https

 

  • Nombre del comando: check_unifi.php_a_wc
  • Línea de comandos: /usr/bin/php /usr/lib/centreon/plugins/check_unifi.php/check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -s https

 

Y luego ya desde “Configurazione” > “Ospita” > “Aggiungere…” deberemos dar de alta como es habitual las APs, los SW, la máquina con el Controller… con l'obiettivo finale di aggiungere i servizi che nos interessano a ogni Host.

Así que finalmente desde “Configurazione” > “Servizi” > “Servizi per Host” vamos añadiendo los Servicios, y les vamos associando a cada uno el Comando que debe llevar y le alimentamos con los Argumentos correspondientes.

Si queremos meter el estado del Hardware a los Switches, utilizaremos el maravilloso pack de plugins de Centreon llamado 'centreon-plugins', que ya vimos cómo usarlo y utilizarlo In questo post. Y este script sí utiliza SNMP, por lo que tendrás que habilitarlo previamente en la consola de 'UniFi Network', poiché “Impostazioni” > “Advanced Features” > “Advanced Gateway Settings” > “SNMP” y configurar una Comunidad para v2 o si queremos v3 unos credenciales. Y con el siguiente Comando lo tendríamos chupado:

perl $CENTREONPLUGINS$/centreon-plugins/centreon_plugins.pl --plugin=network::ubiquiti::edge::Snmp::plugin --hostname $HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --mode hardware

 

Come al solito, registrare ed esportare la configurazione.

 

Sì, se abbiamo seguito tutti i passaggi avremo qualcosa come questo sopra, scusatemi ma sapete che è una follia se faccio uno a uno. Se hai dubbi sull'uso di Centreon è meglio che vada ai documenti iniziali dove spiegavo più in dettaglio come creare un Servizio, un Comando… Quindi hai finito! Abbiamo le CPU, Interfacce di rete/porte, Memorie, Carichi, Canali Wifi, Versioni e firmware, Esperienze, Temperature, Stato dell'Hardware… dei nostri Access Point e Switch di Ubiquiti controllati!

 

E se abbiamo un Grafana beh, possiamo fare delle visualizzazioni carine, il mio un po' scadente, ma accettabile, es que este le tengo diseñado para una pantalla pequeñita 😉 Así que más no le podía meter.

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!