Ir al contenido

Gestión de logs de Odoo

Cuando un sistema Odoo entra en producción, la gestión de logs no suele ser importante... hasta que ocurre un problema. En ese momento, se convierten en la pieza clave para entender qué ha sucedido y poder resolverlo con rapidez. Generalmente nos dejan trazas de lo que ha pasado y nos permiten evaluar de forma detallada muchos de los pasos que han sucedido.

En entornos de desarrollo, lo habitual es trabajar directamente con los logs locales, lanzando Odoo en modo debug o consultando el fichero odoo.log. Sin embargo, en producción la situación cambia:

  • No queremos dar acceso directo a los servidores a todo el equipo.
  • El volumen de registros puede ser muy elevado, con lo que debemos vigilar que datos recopilamos.
  • Se necesitan búsquedas rápidas y eficientes para detectar patrones o errores recurrentes.
  • Hay que cumplir con políticas de seguridad y auditoría. No todo el mundo debería acceder al servidor o a los datos.

¿Por qué son tan importantes?

Los logs son la memoria de Odoo: contienen cada error, cada advertencia y también información de rendimiento que puede ayudar a anticipar problemas antes de que afecten a los usuarios. Una buena política de logging permite:

  • Detectar errores puntuales sin necesidad de reproducirlos.
  • Analizar el comportamiento del sistema a lo largo del tiempo.
  • Aumentar la seguridad al detectar accesos o patrones sospechosos.
  • Facilitar la comunicación entre desarrolladores, sysadmins y consultores.

Además, en Odoo se deja información relevante como intentos de ataque, volumen de accesos o problemas de rendimiento.

Estrategias de almacenamiento y acceso

Existen varias formas de centralizar y gestionar los logs:

  • Ficheros rotativos (logrotate): solución sencilla, pero limitada en búsquedas.
  • Bases de datos relacionales: permiten consultas, pero no están optimizadas para grandes volúmenes de logs.
  • Sistemas especializados de indexación y búsqueda: diseñados para grandes cargas y acceso distribuido.

Nuestra experiencia: ElasticSearch + LogStash

En nuestro caso, hemos optado por un stack basado en ElasticSearch + LogStash. Por un lado, LogStash actúa como recolector, procesando y normalizando los logs de Odoo. La otra parte la complementa ElasticSearch, que indexa toda la información, lo que nos permite hacer búsquedas complejas en segundos. Por último, la capa de visualización (Kibana) facilita la creación de dashboards y alertas.

Gracias a esta configuración conseguimos:

  • Centralizar logs de distintos entornos y servidores.
  • Permitir el acceso a perfiles técnicos sin dar permisos a las máquinas de producción.
  • Detectar incidencias de forma proactiva con alertas configurables.
  • Analizar tendencias de rendimiento en Odoo con vistas históricas.

Conclusión

La gestión de logs no es un lujo, es una necesidad. Disponer de un sistema robusto para almacenar, acceder y analizar los logs de Odoo evita incidencias mayores, mejora la seguridad y permite a los equipos trabajar de forma más ágil.

En nuestro caso, ElasticSearch y LogStash nos han permitido dar un salto cualitativo en cómo gestionamos la información de los logs, y creemos que cualquier proyecto serio de Odoo debería plantearse una estrategia similar desde el inicio. En cualquier caso, la herramienta a usar debería ser elección de cada uno, pero la necesidad es importante en todos los casos.

Cómo colaborar con la OCA sin saber programar
Actividades para aportar en la OCA sin tocar código