Monitoritzant Ubiquiti UniFi a Centreon

I arriba l'hora de governar els APs i els switches d'Ubiquiti! Així que si tens algun dispositiu d'aquest tipus a la teva organització… és hora de centralitzar-ho i controlar-ho des de Centreon. Només amb tenir-ho tot supervisat i anticipant-nos a possibles problemes, comencem! 😛

 

Bo, per a molts dels serveis que anem a monitoritzar ens recolzarem en l’excel·lent script check_unifi.php de Jörg Hörter; així que descarrega’l i com sempre guarda’l al directori dels scripts de Centreon. Amb aquest script podrem obtenir molta informació de la part UniFi d’Ubiquiti, com la salut de cada AP, els seus tràfics, clients, conexiones, consums de recursos… el mateix per als switchs, i per a la controladora igual, disponibilitat, versionat, nombre d’APs/SWs..

Necessitem tenir php instal·lat a la màquina i ‘php-curl’, un cop instal·lats els requisits provem d’executar-lo:

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

 

 

Aquest script si li passem ‘-h’ ens donarà informació amb totes les seves possibilitats d’ús:

Usage: /usr/bin/php check_unifi.php -H [controller] -u [controlleruser] -p [controllerpassword] -P [controllerport] -m [mode] -a [Accesspoint] -w [Warning] -c [Critical] (-S [site] -s =https -C [configfile]) -d =debug)

mode - controller                                = Controller Version, warning if there is an update
       site                                      = list all Site ID and Name
       clients                                   = list all clients (only use in console)
       clients_wifi ( + Accesspoints)            = list all wifi clients with connection speed, optional for one accesspoint (only use in console)
       clients_name + Accesspoint                = list all clients of an 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 + Punt d'accés/Switch               = actualització de firmware disponible per a un punt d'accés/switch i avís/crític (versió de manteniment, versió principal, versió secundària)
       enllaç ascendent + Punt d'accés avís crític            = enllaç ascendent d'un punt d'accés (sense fils: amb velocitat de connexió i avís/crític)
       experiència + Punt d'accés avís crític        = experiència sense fils d'un punt d'accés amb avís/crític
       utilització + Punt d'accés avís crític       = utilització sense fils d'un punt d'accés amb avís/crític (2GHz,5GHz)
       mem + Punt d'accés avís crític               = ús de memòria sortida Mb d'un punt d'accés o un switch amb percentatge d'avís/crític
       mem% + Crit d'alerta d'accés = percentatge de sortida d'ús de memòria d'un punt d'accés o d'un interruptor amb percentatge d'alerta/crític
 CPU + Crit d'alerta d'accés/Switch = ús combinat de CPU i càrrega d'un punt d'accés o un commutador amb percentatge d'avís/crític
 cpu% + Crit d'alerta d'accés/Switch = ús de CPU d'un punt d'accés o d'un interruptor amb percentatge d'avís/crític
 càrrega + Crit d'alerta d'accés a Switch/Switch = ús de càrrega a Linux d'un punt d'accés o d'un switch amb avisar/crítica 1,5,15
       temperature + Switch                      = temperatura d'un switch amb advertència/crític
       ap warn crit                              = comptar punts d'accés (En línia i fora de línia) amb punts d'accés fora de línia amb advertència i crític
       switch warn crit                          = comptar switches (En línia i fora de línia) amb switches fora de línia amb advertència i crític


-C   - fitxer de configuració (per defecte=unifi.php) en lloc dels paràmetres del controlador -H,-u,-p,-P,-s -S (pots especificar qualsevol fitxer amb la ruta)
       exemple:

       <?php
       $host='192.168.2.213';    # IP o Nom d'amfitrió del servidor de control Unifi
       $prot='https';            # Valor http o https
       $port='8443';             # Port del controlador
       $user='nagios';           # Loginuser Controller
 $pass='nagios';           # Password Loginuser
 $siteid='default';        # Site ID
 $dir_unifi_client='';     # Directory unifi_client.php
       ?>

 

Bo, 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 a mi):

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

 

Número 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

 

Ara, una vez que hayas cacharreado y probado, es hora de llevarlo como siempre a Centreon, com sempre, inicialment definirem els Comandos que necessitarem per crear després els Serveis que ens interessen. En mi cas he creat estos 4 Comandaments, os los dejo por si queréis copiarlos, unos van con más o menos argumentos y la possibilitat de meterle Warning / Critical si nos interessa. Anem a “Configuration” > “Commands” > “Checks” > “Add…”

  • Nom del comandament: check_unifi.php
  • Línia de comandaments: /usr/bin/php $CENTREONPLUGINS$/check_unifi.php/check_unifi.php -H DIRECCION_IP_CONTROLLER -P 8443 -u USUARIO -p CONTRASEÑA -m $ARG 1$ -s https

 

  • Nom del comandament: check_unifi.php_wc
  • Línia de comandaments: /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 $ARG 1$ -w $ARG 2$ -c $ARG 3$ -s https

 

  • Nom del comandament: check_unifi.php_a
  • Línia de comandaments: /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 $ARG 1$ -a $ARG 2$ -s https

 

  • Nom del comandament: check_unifi.php_a_wc
  • Línia de comandaments: /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 $ARG 1$ -a $ARG 2$ -w $ARG 3$ -c $ARG 4$ -s https

 

Y luego ya desde “Configuration” > “Hosts” > “Add…” deberemos dar de alta como es habitual las APs, los SW, la máquina con el Controller… amb l'objectiu final d'afegir els serveis que ens interessen monitorar a cada Host.

Así que finalmente desde “Configuration” > “Services” > “Services by Host” vamos añadiendo los Servicios, y les vamos associando a cada un el Comandament que ha de llevar y le alimentamos con los Argumentos correspondientes.

Si queremos mesurar l'estat del Maquinari a los Switches, utilitzarem el maravillós pack de plugins de Centreon llamado 'centreon-plugins', que ya vimos cómo usarlo y utilizarlo en este post. Y este script sí utiliza SNMP, por lo que tendrás que habilitarlo previamente en la consola de 'UniFi Network', des de “Settings” > “Advanced Features” > “Advanced Gateway Settings” > “SNMP” y configurar una Comunidad para v2 o si volem v3 unos credenciales. Y con el següent Comando lo tendremos chupado:

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

 

Com sempre, gravar i exportar la configuració.

 

Sí, si hem seguit tots els passos tindrem alguna cosa com això de dalt, disculpeu-me però sabeu que és una bogeria si faig un a un. Si tens dubtes sobre l'ús de Centreon és millor que vagis als documents inicials on donava més detall de com crear un Servei, un Comandament… Així que llest! Tenim les CPU, Interfícies de xarxa/ports, Memòries, Càrregues, Canals Wifi, Versionat i firmwares, Experiències, Temperatures, Estat del Maquinari… dels nostres Access Point i Switches de Ubiquiti controlats!

 

I si tenim un Grafana doncs podem fer unes visualitzacions xules, el meu un mica cutre, però acceptable, es que este le tengo diseñado para una pantalla pequeñita 😉 Así que más no le podía meter.

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!