Logs en Tiempo-Real

El comando “Log” nos permite visualizar en tiempo real los logs o registros generados a manera de historial de los diversos eventos en nuestro servidor, ya sea por el acceso de visitantes a las páginas de los sitios hospedados o por las diferentes herramientas que se ejecutan internamente.

Ya sea porque queremos depurar algún error (debug), monitorear alguna aplicación o herramienta (php, mail, mysql, etc) o simplemente detectar algún visitante, bot, etc., entre otras aplicaciones, es importante contar con esta herramienta para hacerlo de manera fácil, rápida y en tiempo real.

Sintaxis:

sudo log <dominio> <opcion>

Opciones:

  • -error
  • -le
  • -mail
  • mysql
  • -only-error
  • php
  • -purge
  • -ssh
  • -syslog
  • -wp

Ejemplos:

# Activa WP Debug
sudo log example.com -wp=on

# Activa el log de un sitio
sudo log example.com -only-error=off

# Ver un log en tiempo real
sudo log example.com

* Utiliza Ctrl+C para salir o terminar.


Logs de acceso de Nginx

Los logs de acceso de Nginx están desactivados de manera predeterminada.

Para activar el log de acceso general y nuevos sitios creados.

sudo log -only-error=off

Para activar el log de un sitio en particular.

sudo log example.com -only-error=off

Podemos volver a desactivarlos usando la opción -only-error=on.

Formato y Métricas de los Logs de Nginx

Cuando los Logs de Acceso están habilitas pueden ser usados para recolectar métricas que en algunos casos pueden resultar de mucho valor. Adicional a el formato estándar, hemos incluido un formato extendido de los logs para facilitar la integración con herramientas externas como Datadog o Amplify. En el Archivo de Configuración de Webinoly, solo tienes que configurar nginx-log-format:extended, además, el nivel de error de Nginx puede ser modificado aquí.

Un formato personalizado para los logs puede ser incluido con tus propias métricas, en este caso solo configura nginx-log-format:custom e incluye tu propia configuración aquí: /etc/nginx/conf.d/*.conf.log usando el nombre we_log_custom.

Webinoly tiene integración nativa con Datadog

Modern Log Management & Analytics.
Search and analyze your logs at any scale, on any budget.

Datadog Log Management unifies logs, metrics, and traces in a single view, giving you rich context for analyzing log data. Whether you’re troubleshooting issues, optimizing performance, or investigating security threats.

¿Cómo puedo ver el log de acceso a mi sitio web?

Para ver el log de un sitio en particular:

sudo log example.com

Para ver el log de acceso de todos los sitios web alojados en mi servidor:

sudo log

Las opciones anteriores solo muestran el registro de eventos de acceso, pero omiten los eventos de “error”.

¿Cómo puedo ver el registro o log de errores?

Por ejemplo, tal vez quisieramos ver los “warning” o “error” de nuestro sitio WordPress generados por PHP durante la ejecución de una página en particular.

sudo log example.com -error

De igual manera, si quisieramos ver el log de error generado por todos los sitios alojados en el servidor, usamos el siguiente comando:

sudo log -error

* Es posible modificar el número de líneas mostradas en la salida del comando log, por default el valor es 10. Siempre puedes incluir el argumento -lines en el comando log: sudo log example.com -lines=25 o para una solución más permanente puedes modificar este valor directamente en el archivo de configuración de Webinoly usando la variable log-line:25.

** Los logs de acceso y error son para el dominio completo, por lo que el parámetro -subfolder será ignorado, excepto para sitios WordPress donde este parámetro es necesario para habilitar el modo de depuración de un sitio en específico cuando WO está instalado en una subcarpeta, aún incluso en este caso los logs seguirán siendo registrados para el dominio completo.

WordPress Debug

Cuando tenemos configurado el modo Debug en WordPress desde el archivo wp-config.php tenemos la opción de generar un archivo debug.log, normalmente localizado en la carpeta /wp-content.

Para visualizar en tiempo real desde la linea de comandos los eventos generados en este archivo usamos el siguiente comando:

sudo log example.com -wp

Además, tenemos la opción para activar/desactivar el modo Debug en WordPress en cualquiera de tus sitios:

sudo log example.com -wp=on

El modo Debug en WordPress tiene la opción para mostrar los mensajes en pantalla dentro del HTML de la página y está activado por default. Podemos desactivar esta función para solo enviar los mensajes al archivo de registro:

sudo log example.com -wp=on -display=off

Además, puede configurar el tipo de entorno en WordPress desde este comando: sudo log example.com -wp=on -env=development.

¿Cómo puedo ver el log generado por una aplicación o herramienta?

Webinoly soporta la visualización de los eventos generados por PHP, MySQL, mail, syslog, SSH y Let’s Encrypt.

sudo log -php
sudo log -ssh
sudo log -mail
sudo log -syslog
sudo log -le

Las opciones -fpm y -php son equivalentes y -le es para “Let’s Encrypt”.

MySQL logs

El error log siempre está activado.

sudo log -mysql=error

* En servidores creados antes de la v1.11.0 todos los logs de MySQL son enviados a Syslog, que es la configuración predeterminada de MySQL, a partir de dicha versión hemos cambiado esto para tener un archivo individual.

El general log incluye todos los queries y es muy útil para depurar o auditar las operaciones en la base de datos.

sudo log -mysql=general
sudo log -mysql=general -enable
sudo log -mysql=general -disable

El slow query log incluye todos los queries que exceden el tiempo configurado en -long-query-time (default: 10s) y es muy útil para detectar las operaciones que impactan el desempeño de nuestro sistema.

sudo log -mysql=slow
sudo log -mysql=slow -enable
sudo log -mysql=slow -enable -long-query-time=3
sudo log -mysql=slow -disable

El binary log es usado principalmente para replicación de las bases de datos.

sudo log -mysql=binary
sudo log -mysql=binary -enable
sudo log -mysql=binary -disable

Limpiar y remover Logs

Elimina de manera permanente todos los archivos con extensión GZ (logs rotados) del directorio /var/log.

sudo log -purge

Usa la opción -purge=force para saltar las preguntas.

También puedes eliminar únicamente los logs de una aplicación en especifico (nginx, letsencrypt, mysql, redis, all, force):

sudo log -purge=nginx

A manera de consejo personal, te sugiero que si tu espacio en disco es reducido de manera que los logs archivados son demasiados, deberías considerar migrar a un servidor con mayor espacio de almacenamiento.

Si tienes alguna sugerencia, idea o comentario, por favor visita y únete a nuestra Comunidad.