Foro en Español

Reply
Highlighted
Occasional Contributor II

Aruba Central y Google Sheet - La mejor combinación para generar reportes personalizados

Saludos

 

Este artículo trata sobre un script desarrollado a manera de demo, que aprovecha las APIs de Aruba Central y Google Sheets con el objetivo de demostrar a un Cliente que sí era posible generar un reporte solicitado por su área de marketing.

 

El Cliente deseaba poder ver el listado de sus invitados (Guest Access) que accedían al servicio de WiFi gratuito filtrando por nombre de la sede, y donde pudiese ver:

 

  • El email de la persona utilizado durante el registro
  • Hora del registro
  • Tiempo de conexión en la red WiFi
  • Dispositivo utilizado para conectarse a la red WiFi.

El siguiente video muestra el resultado del demo:

 

(view in My Videos)

 

Cómo probarlo?

 

Simplemente abra el siguiente archivo de Google Sheet dando click en este link:

https://docs.google.com/spreadsheets/d/1G8kQ-BY6hEd2v1utO2_XpC6ZarVdp0J4jPLAU1dcuDE/edit?usp=sharing

luego copie el archivo en su perfil, de esta forma los tokens, client ID y client Secrete no podrán ser visualizados por otras personas en Internet.

 

A continuación, complete los siguientes 4 pasos para que el reporte pueda ser generado:

 

1. Información específica del cliente en Aruba Central que se desea monitorear:

 

  • Access Token en la celda C2
  • Refresh Token en la celda C3
  • Client ID en la celda F2
  • Client Secret en la celda F3

2. Configurar los triggers en Google Script para automatizar la tarea de generar los reportes cada día:  Click en Edit, luego “Current project’s triggers y luego click en “Add a new trigger”.   Agregar 3 triggers que se encargarán de:

 

  • get_access_token: Generar un nuevo Access token cada hora, ya que los Access Token expiran en 2 horas.
  • callListUsers_callGuestSessions: Monitorea las conexiones de los invitados a la red WiFi, para este demo configuré el monitoreo cada 5 minutos.
  • run_midnight: Generar el reporte al finalizar el día, la función se ejecutará una vez entre 12am y 1am.

trigger1.png

*3. Definir la URL de Aruba Central a la cual se harán las consultas vía API.  Clientes existentes de Aruba Central se encuentran en URL = https://app1-apigw.central.arubanetworks.com mientras que demos y pruebas de concepto pueden estar corriendo sobre URL = https://internal-apigw.central.arubanetworks.com

 

Por default, el script de la demostración tiene definido:

var URL = "https://internal-apigw.central.arubanetworks.com"

 

Click en Tools, luego “Script editor”, y luego click en “Code.gs”, de esta forma podrá seleccionar la variable URL correcta. 

url1.png

4. Con la ayuda de los botones podrá completar fácilmente los campos adicionales:

  • Botón Token: Genera un nuevo Access token y de esta forma podrá verificar la comunicación con Aruba Central .
  • Botón Sites: Lista las posibles opciones de sitios sobre el cuál se desea hacer el reporte.
  • Botón SSIDs: Lista los Guest SSIDs configurados.
  • Botón Captive: Lista los Captive Portals configurados.

El siguiente video explica los 4 pasos anteriormente detallados:

 

(view in My Videos)

Pasada la media noche podrán seleccionar la fecha (día y año) del reporte deseado y dando click en el botón “Report” podrán visualizarlo. 

 

Cómo funciona?

 

Este es el diagrama de la demostración:

diagrama1.png

La experiencia de acceso del invitado solicitada por el cliente fue a través de portal cautivo con validación vía email:

validacion1.png

Google Sheet tiene un script atado lo que permite automatizar tareas y hacer consultas de información a Aruba Central. El script está compuesto por 14 funciones, las cuales se pueden consultar desde Google Sheet Tools Script ó accediendo al siguiente link en Github:

https://github.com/adolfobolivar/Guest_sessions_perSite

 

El diagrama muestra el funcionamiento del script:

 

Sitelabel1.png

 

Detalles del script

 

La función get_access_token() se encarga de comunicarse con Aruba Central para obtener un nuevo Access Token, ya que estos token expiran a las 2 horas de haberse creado.

accesstoken1.png

Las funciones ListSites(), ListSSIDs(), ListAPs() y ListUsers() también se comunican con Aruba Central vía APIs de monitoreo para obtener la información de los Site Labels, SSIDs para invitados (Guest SSIDs) configurados, Access Points y usuarios conectados a dichos Access Points.

listuser1.png

Las funciones ListSplashPages() y ListGuestSessions() al igual que las funciones anteriores, se comunica con Aruba Central vía APIs de Guest para obtener la información de los portales cautivos configurados y los invitados autenticados a la red WiFi a través de estos portales cautivos.

listguest1.png

Las funciones callListSites_callListAPs(), callListUsers_callGuestSessions(), callListSSIDs() y callSplashPages() se encargan de invocar las funciones que se conectan a Aruba Central.  Además, se definen las llaves del objeto JSON que son de interés y que serán las cabeceras de las columnas en las diferentes hojas de Google Sheets.

call1.png

Las funciones printAPList(data,keys), printListSites(data,keys), printSSIDsList(data,keys), printUsersList(data,keys) y printSplashPages(data,keys) se encargan de convertir los arreglos de datos que se obtienen de Aruba Central y transformarlos en formato de celdas que puedan ser visualizados en Google Sheets

print1.png

La función run_midnight() se encarga de procesar la información capturada durante el día, eliminar duplicidad de la información y generar el reporte.

 

Finalmente, la función load_sheet(DATE_REPORT) trae a pantalla el reporte del día de interés y crea un filtro automáticamente para visualizar la información de la sede seleccionada.

 

Consideraciones adicionales

 

Tener presente que Google tiene unas quotas máximas dependiendo de la cuenta que se utilice para ejecutar el script,  detalles los encontrará aquí: 

https://developers.google.com/apps-script/guides/services/quotas

 

Por esta razón, por default en el script hay un límite de consulta de hasta 100 usuarios: 

limit1.png

Finalmente, comentarios, sugerencias son bienvenidas.

 

Att,

Adolfo Bolívar

Aruba SE - RLA Region

Re: Aruba Central y Google Sheet - La mejor combinación para generar reportes personalizados

Excelente tutorial Adolfo 

Thank you

Victor Fabian
Lead Mobility Architect @WEI
AMFX | ACMX | ACDX | ACCX | CWAP | CWDP | CWNA
Search Airheads
cancel
Showing results for 
Search instead for 
Did you mean: