Introducción a Liferay User Live Session Monitoring

En Liferay Portal tenemos una opción de monitorización en el panel de control quizá poco explotada o poco conocida debido a que viene desactivada por defecto por cuestiones de rendimiento. Me estoy refiriendo a la que da título a esta entrada: Monitoring.

Veamos lo que ofrece a simple vista y rasquemos un poquito más para ver lo que tenemos debajo.

Liferay User Live Sessions Monitoring

Activación

Para tener operativa esta funcionalidad del panel de control debemos añadir a nuestro portal-ext.properties esta línea:

live.users.enabled=true

Una vez activada esta opción nos aportará información en tiempo real de las sesiones que los usuarios tienen iniciadas en el momento que accedemos a la consulta.

La operativa es muy sencilla, accedemos, visualizamos la relación de ID’s de usuario que tienen iniciada la sesión junto con algunos datos y si queremos más información sobre uno de los usuarios hacemos clic sobre este.

La información (de interés) que podemos obtener de cada sesión de usuario es la siguiente:

  • Identificador de Sesión
  • Última petición: Fecha y hora de la última petición realizada (URL visitada)
  • Número de accesos: Número total de URL visitadas en el portal / intranet / extranet
  • Datos de usuario (nombre y dirección de correo electrónico)
  • Tipo de Navegador/S.O: Información sobre el sistema operativo y navegador utilizado
  • IP del servidor remoto: IP remota desde la que se ha conectado el usuario
  • URLs accedidas: Relación de todas las URLs visitadas

Pero ¿Qué ocurre con esta información si el usuario cierra sesión? Pues que al tratarse de información de Sesiones Activas obviamente desaparecerá. Por suerte, contamos con otras opciones de configuración para el portal-ext.properties con las que crear persistencia de toda esta información en base de datos:

session.tracker.memory.enabled=true

session.tracker.persistence.enabled=true

session.tracker.friendly.paths.enabled=true

Con estas 3 líneas conseguiremos que se almacene la información entre las tablas usertrackerPath y usertracker, de manera que podamos consultar los datos antes mencionados tanto si la sesión está activa como si es de fechas anteriores.

Ni que decir tiene que esta información, dependiendo del número de usuarios que tenga el portal, puede crecer de forma desorbitada.

Como acceder mediante la administración de BBDD a visualizar esta información no es nada usable he optado por hacer un pilotillo de dashboard o cuadro de mando con QlikView en su versión Personal Edition.

En este piloto también he añadido la tablat user_ para poder tener otros datos relacionados con los usuarios:

  • Fecha del último login
  • Relación de IPs de conexión
  • Última IP de conexión
  • Total de usuarios
  • Carga total de usuarios

Liferay Monitoring Dashboard - Cuadro de mando

La idoneidad de esta “mini-auditoría” es bastante discutible por lo que he comentado anteriormente del rendimiento, el incremento de la información almacenada y por acceder a la información con una conexión directa a la base de datos, no obstante, creo que se trata de una funcionalidad interesante, no solo para Community Edition dónde no disponemos de Auditoría, sino en general para tener un sistema de trazabilidad que nos permita procesar la información y conocer con cierto detalle cuál es comportamiento de los usuarios en áreas privadas del portal (intranets / extranets).

Imagen “3D Social Networking” CC de Chris Potter (Stockmonkeys.com Flickr)