Extrae y almacena los logs de Servicios de Liferay PaaS y SaaS

Un script sencillo con el que cubrir necesidades

En el mundo de la gestión de servicios en la nube, uno de los aspectos cruciales es la administración de logs. Los logs proporcionan información valiosa para la resolución de problemas y la propia monitorización del sistema.
Si tu proyecto lo tienes implementado sobre Liferay PaaS o Liferay SaaS, no tienes mucho de que preocuparte, pues tanto como Liferay PaaS y SaaS ofrecen out-of-the-box el almacenamiento y gestión de logs de los Servicios desplegados. Sin embargo, es bastante recurrente tratar con clientes el deseo de almacenar los logs en sistemas terceros como infraestructura propia, con el objetivo de cubrir necesidades de auditoría de los mismos, por ejemplo.

Utilizando las propias herramientas que la infraestructura de Liferay Cloud ofrece para el tratamiento de Logs de los Servicios desplegados, comparto un script Bash con el que simplificar la tarea de descargar los logs de los servicios desplegados en Liferay Cloud, permitiendo el almacenamiento en infraestructura local para su posterior tratamiento. Este script es una solución práctica para los administradores de sistemas y desarrolladores que buscan una forma eficiente de extracción y almacenamiento de logs sin complicaciones.

¿Qué hace y para qué sirve este script?

Este script utiliza las herramientas de Liferay Cloud Platform (CLI) para acceder a los Logs y está pensado para automatizar el proceso de descarga de logs para todo el stack de servicios por defecto en Liferay Cloud, guardándolos en un archivo comprimido diariamente. Es funcional tanto en Liferay SaaS como en Liferay PaaS (a.k.a. Liferay Experience Cloud & Liferay Experience Cloud Self-Managed). A continuación las características clave:

  1. Descarga de Logs por Servicio: Extrae logs de múltiples servicios desplegados en Liferay Cloud. Por defecto, Webserver, Database, Backup, Liferay y Search, así como los de las custom app desplegadas como Servicios dentro del PaaS o las client extensions dentro del SaaS.
  2. Rango de Tiempo Personalizable: Es posible la configuración de el script para descargar logs de un periodo de tiempo específico, por ejemplo, el día de ayer.
  3. Gestión de Errores: El script será sensible a errores que ocurran durante la descarga y lo almacenará en un archivo de log separado para su posterior análisis.
  4. Compresión Automática: Después de descargar los logs, los comprime en un archivo ZIP para facilitar su almacenamiento y transporte.
  5. Medición del Tiempo de Ejecución: El script mide cuánto tiempo tarda la descarga y almacenamiento, proporcionándote una idea clara de la duración del proceso diaria.

¿Cómo usar el script?

  1. Preparación del Entorno:

    1. Asegúrate de tener acceso a la API de Liferay Cloud (liferay.cloud) utilizando LCP CLI

    2. Es recomendable la creación de un usuario local dedicado para este acometido en el proyecto y entorno cloud, con el role GUEST, para limitar el acceso del mismo. Este usuario y sus credenciales serán utilizados dentro del script para poder conectar con la API.

  2. Configuración del Script: Modifica las variables en el script para que se ajusten a tu entorno:

    • PROJECT_ID: ID de proyecto de Liferay Cloud.
    • ENVIRONMENT: Entorno del cual extraer los Logs. Normalmente prd.
    • SERVICES: La lista de servicios de los que deseas descargar logs.
    • LCP_USER y LCP_PASSWORD: Las credenciales de acceso a Liferay Cloud del usuario previamente creado.
    • LOG_DIR: Directorio donde almacenar los ficheros ZIP que contendrán los Logs de los servicios.
  3. Ejecución del Script: El script está pensado para la extracción diaria de ficheros de log del día anterior al completo, por lo que en un entorno Linux será posible su programación diaria utilizando crontab y una expresión cron que ejecute el script a las 00.00 diariamente:

    0 0 * * * /path/to/script/log_downloader.sh

¿Dónde encontrarlo?

En mi repositorio de Github puedes obtenerlo y contribuir con lo que veas necesario que pueda ser de ayuda. 
Con el fin de hacerlo lo más intuitivo posible, para SaaS podrás utilizar este y para PaaS este otro, donde sólo cambia la lista de Servicios por defecto a los que se tendrá acceso para descargar los logs.