Monitoramento Ubiquiti UniFi no Centreon
E é hora de governar os APs e switches da Ubiquiti! Então, se você tem algum dispositivo desse tipo em sua organização… é tempo de centralizá-lo e controlá-lo a partir do Centreon. Com o simples facto de ter tudo supervisionado e antecipar possíveis problemas, ¡Início! 😛
Poço, Para muitos dos serviços que vamos monitorizar, vamos apoiar-nos no maravilhoso script check_unifi.php de Jörg Hörter; por isso descarrega-o e, como sempre, guarda-o no diretório dos scripts do Centreon. Com este script vamos poder obter um monte de informação da parte UniFi da Ubiquiti, que é a saúde de cada AP, os seus tráfegos, Clientes, Conexões, consumos de recursos… o mesmo para os switches, e para o controlador também, disponibilidad, versionamento, número de APs/SWs..
Precisamos de ter o PHP instalado na máquina e o 'php-curl', uma vez instalados os requisitos, testamos a executá-lo:
yum install php-curl /usr/bin/php check_unifi.php
Este script, se lhe passarmos '-h'’ dar-nos-á informação com todas as suas possibilidades de uso:
Uso: /usr/bin/php check_unifi.php -H [controller] -quer [controlleruser] -p [controllerpassword] -P [controllerport] -m [modo] -Para [Accesspoint] -w [Aviso] -c [Crítico] (-S [site] -s =https -C [configfile]) -d =debug)
modo - controller = Controller Version, aviso se houver uma atualização
site = listar todos os ID e Nome do Site
clientes = listar todos os clientes (usar apenas na consola)
clients_wifi ( + Accesspoints) = listar todos os clientes wifi com velocidade de ligação, opcional para um ponto de acesso (usar apenas na consola)
clients_name + Ponto de acesso = lista todos os clientes de um ponto de acesso
clients_name_guest + Ponto de acesso = listar todos os clientes e convidados de um ponto de acesso
clients_count + Ponto de acesso = contar clientes de um ponto de acesso
clients_count_guest + Ponto de acesso = contar clientes e convidados de um ponto de acesso
canais + Ponto de acesso = canais 2GHz/5GHz de um ponto de acesso
transferir + Ponto de acesso = transferência rx/tx de um ponto de acesso (KBit/MBit)
transferir+ + Ponto de acesso = transferência rx/tx de um ponto de acesso (KByte/MByte)
Tempo de atividade + Ponto de acesso/Switch = tempo de funcionamento e firmware de um ponto de acesso/switch
atualização + Accesspoint/Switch = atualização de firmware disponível para um accesspoint/switch e aviso/crítico (atualização pontual, versão principal, versão secundária)
uplink + Aviso/Crítico do Accesspoint = uplink de um accesspoint (sem fios: com velocidade de ligação e aviso/crítico)
experiência + Aviso/Crítico do Accesspoint = experiência sem fios de um accesspoint com aviso/crítico
utilização + Aviso/Crítico do Accesspoint = utilização sem fios de um accesspoint com aviso/crítico (2GHz,5GHz)
mem + Aviso/Crítico do Accesspoint = uso de memória em MB de um accesspoint ou switch com percentagem de aviso/crítico
mem% + Crit de aviso de ponto de acesso = percentagem de saída de utilização de memória de um ponto de acesso ou de um switch com percentagem de aviso/crítico
CPU + Crit de aviso de ponto de acesso/Switch = uso combinado de cpu e carga de um ponto de acesso ou de um switch com percentagem de aviso/crítico
cpu% + Crítico crítico/aviso crítico crítico = utilização de CPU de um ponto de acesso ou de um interruptor com percentagem de aviso
carga + Crítico de aviso de Accesspoint/Switch = uso de carga Linux de um ponto de acesso ou de um switch com aviso/crítico 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,-quer,-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
?>
Poço, 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 (para mí):
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 temperatura -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
Agora, una vez que hayas cacharreado y probado, es hora de llevarlo como siempre a Centreon, como de costume, inicialmente definiremos los Comandos que precisamos para criar depois los Servicios que nos interessam. En mi caso he created estos 4 Comandos, 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 interessase. Nós vamos “Configuração” > “Comandos” > “Verifica” > “Adicionar…”
- 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 $ARG 1$ -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 $ARG 1$ -w $ARG 2$ -c $ARG 3$ -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 $ARG 1$ -a $ARG 2$ -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 $ARG 1$ -a $ARG 2$ -w $ARG 3$ -c $ARG 4$ -s https
Y luego ya desde “Configuração” > “Hosts” > “Adicionar…” deberemos dar de alta como es habitual las APs, los SW, la máquina con el Controller… com o objetivo final de adicionar os serviços que nos interessam monitorizar a cada Host.
Así que finalmente desde “Configuração” > “Serviços” > “Services by Host” vamos añadiendo los Servicios, y les vamos associando a cada uno o comando que deve llevar y le alimentamos con los Argumentos correspondientes.
Si queremos meter el estado del Hardware a los Switches, utilizaremos o maravilloso pack de plugins de Centreon llamado 'centreon-plugins', que ya vimos cómo usarlo y utilizarlo Neste post. Y este script sí utiliza SNMP, por lo que tendrás que habilitarlo previamente en la consola de 'UniFi Network', desde “Configurações” > “Advanced Features” > “Advanced Gateway Settings” > “SNMP” y configurar una Comunidad para v2 o si queremos v3 unos credenciales. Y con el próximo 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
Como de costume, grabar y exportar la configuración.
Se seguirmos todos os passos teremos algo como isto acima, Desculpem, mas sabem que é uma loucura se fizer um por um. Se tiveres dúvidas sobre o uso do Centreon é melhor ires aos documentos iniciais onde dava mais detalhe de como criar um Serviço, Um Comando… Então você está feito! Temos as CPU, Interfaces de rede/portas, Memórias, Cargas, Canais Wifi, Versionamento e firmwares, Experiências, Temperaturas, Estado do Hardware… dos nossos Access Point e Switches da Ubiquiti controlados!
E se tivermos um Grafana podemos fazer algumas visualizações fixes, o meu um pouco rudimentar, mas aceitável, es que este le tengo diseñado para una pantalla pequeñita 😉 Así que más no le podía meter.












































