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, para muchos de los servicios que vamos a monitorizar nos apoyaremos en el maravilloso script check_unifi.php de Jörg Hörter; así que descárgalo y como siempre guardarlo en el directorio de los scripts de Centreon. Con este script vamos a poder sacar un montón de información de la parte UniFi de Ubiquiti, lo que es la salud de cada AP, sus tráficos, Clienti, Connessioni, consumos de recursoslo mismo para los switch’es, y a la controladora lo mismo, disponibilidad, versionado, número de APs/SWs..

Necesitamos disponer de php instalado en la máquina y de ‘php-curl’, una vez instalador los requisitos probamos a ejecutarlo:

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

 

 

Este script si le pasamos ‘-hnos dará información con todas sus posibilidades de uso:

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                                = 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 + 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% + Accesspoint warn crit              = memory usage output percent of an accesspoint or a switch with warn/critical percent
       cpu + Accesspoint/Switch warn crit        = cpu and load combination usage of an accesspoint or a switch with warn/critical percent
       cpu% + Accesspoint/Switch warn crit       = cpu usage of an accesspoint or a switch with warn/critical percent
       load + Accesspoint/Switch warn crit       = linux load usage of an accesspoint or a switch with warn/critical 1,5,15
       temperatura + Switch                      = temperature of a switch with warn/critical
       ap warn crit                              = count Accesspoint (Online and Offline) with warn and critical offline Accesspoints
       switch warn crit                          = count Switch (Online and Offline) with warn and critical offline Switch


-C   - config file (default=unifi.php) instead of the controller parameters -H,-u,-p,-P,-s -S (you can specify any file with path)
       example:

       <?php
       $host='192.168.2.213';    # IP or Hostname unifi controller Server
       $prot='https';            # Value http or https
       $port='8443';             # Controller Port
       $user='nagios';           # Loginuser Controller
       $pass='nagios';           # Password Loginuser
       $siteid='default';        # Site ID
       $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

 

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

 

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 Controllercon el objetivo final de añadirle los servicios que nos interesen monitorizar a cada Host.

Así que finalmente desde “Configurazione” > “Servizi” > “Services by Hostvamos añadiendo los Servicios, y les vamos asociando 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, grabar y exportar la configuración.

 

Sí hemos seguido todos los pasos tendremos algo como esto de arriba, disculparme pero sabéis que es una locura si hago uno a uno. Si tienes dudas del uso de Centreon es mejor que vayas a documentos iniciales donde daba más detalle de cómo crear un Servicio, un Comando… Quindi hai finito! Tenemos las CPU, Interfaces de red/puertos, Memorie, Carichi, Canales Wifi, Versionado y firmwares, Experiencias, Temperaturas, Estado del Hardwarede nuestros Access Point y Switches de Ubiquiti controlados!

 

Y si tenemos un Grafana pues podemos hacer unas visualizaciones chulas, el mio un poco cutre, pero aceptable, 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!!!