Depuración de Nginx

A diferencia de la mayoría de los servidores web, Nginx maneja un alto tráfico y escala con un hardware mínimo. Gracias a su arquitectura basada en eventos, gestiona una gran cantidad de solicitudes con facilidad. Se utiliza sobre todo en entornos en los que toca distribuir las solicitudes de los clientes entre varios servidores.

Además de todo esto, Nginx es una opción ideal para el balanceo de carga, el almacenamiento en caché y la reescritura de URL. Esto da a los administradores el derecho a permitir o restringir el acceso de las solicitudes.

¿Qué son los logs de Nginx?

Nginx registra los datos relacionados con las interacciones entre los servidores web Nginx y los clientes, como los navegadores, en forma de logs. Estos logs suelen incluir información como conexiones de clientes, tráfico del servidor web, utilización de recursos y mucho más.

Nginx proporciona diferentes tipos de niveles de registro basados en varios grados de severidad y verbosidad requeridos:

  • debug: mensajes detallados con fines de depuración.
  • info: eventos importantes, como el arranque y la parada del servidor.
  • notice: acontecimientos dignos de notificación, pero no necesariamente errores. Por ejemplo, el inicio del servidor, las recargas de configuración y los eventos de procesos de trabajadores son eventos que se registran a nivel de notificación.
  • warn: condiciones potenciales de error que pueden requerir atención.
  • error: condiciones reales de error que se han producido.
  • crit: condiciones de error graves que requieren atención inmediata.
  • alert: condiciones que requieren una acción inmediata.
  • emerg: condiciones de emergencia que pueden inutilizar el sistema.

¿Por qué el modo de depuración?

A medida que aumenta el nivel de registro, los detalles que contiene un log sobre un incidente determinado serán más detallados. De esta forma, cuando ejecute Nginx en modo de depuración, contendrá datos exhaustivos sobre todas las actividades. Esto le ayudará a identificar y solucionar problemas con mayor facilidad.

Nota:

es importante que active el modo de depuración solo cuando el servidor Nginx se encuentre con un problema para realizar un análisis exhaustivo del mismo. Esto se debe a que mantener el modo de depuración hará que los datos de log tengan mucho ruido e imprimirá información innecesaria.

¿Cómo configuro el modo de depuración de Nginx?

Configurar el registro de depuración con Nginx implica modificar los archivos de configuración de Nginx para aumentar la verbosidad de la información. Cuando se encuentre con un problema y desee obtener una información más profunda de las operaciones de su servidor Nginx para encontrar una solución alternativa, cambie al registro de depuración al:

1. Garantizar que Nginx sea compatible con la depuración

Compruebe que su instalación de Nginx sea compatible con la depuración. Esto se indica normalmente mediante la presencia de la bandera "--with-debug" durante la compilación. ¿Su versión no es compatible con la depuración? Puede que necesite instalar una versión de depuración de Nginx, como "nginx-debug" en CentOS.

2. Modificar la configuración de Nginx

  • Edite el archivo de configuración de Nginx: abra su archivo de configuración principal de Nginx, normalmente ubicado en "/etc/nginx/nginx.conf", o un archivo de configuración específico del sitio en "/etc/nginx/sites-available/" o "/etc/nginx/conf.d/".
  • Establezca el nivel de depuración: añada o modifique la directiva error_log dentro del bloque http, server o location para incluir el nivel de depuración.
error_log /var/log/nginx/error.log debug;

Esto registrará información detallada de depuración en el archivo especificado.

  • Depuración específica de ubicación: si desea depurar una parte específica de su aplicación, puede añadir una directiva error_log dentro de un bloque de ubicación:
server {
# Other configurations...
error_log /var/log/nginx/example.com.error.log;
location /admin/ {
error_log /var/log/nginx/admin-error.log debug;
}
}

3. Volver a cargar la configuración de Nginx:

Tras realizar cambios en los archivos de configuración, deberá recargar Nginx para aplicarlos. Puede hacerlo utilizando uno de los siguientes comandos:

  • Ubuntu/Debian:
  • sudo nginx -t && sudo service nginx reload
  • CentOS/RHEL:
  • sudo nginx -t && sudo systemctl reload nginx

4. Revisar los logs de depuración:

  • Ubicación de los logs: los logs de depuración se escriben en el archivo especificado en la directiva error_log, normalmente "/var/log/nginx/error.log".
  • Análisis los logs: utilice herramientas como tail, grep o software de análisis de logs para revisar los logs en busca de patrones o errores específicos.

5. Desactivar el registro de depuración

  • Edite el archivo de configuración: abra de nuevo el archivo de configuración.
  • sudo nano /etc/nginx/nginx.conf
  • Modifique el nivel de log: modifique la directiva error_log para reducir el nivel de log. Por ejemplo, cámbielo por info:
  • error_log /var/log/nginx/error.log info;

    Alternativamente, puede comentar la directiva error_log o establecerla en "/dev/null" para un registro mínimo:

    #error_log /var/log/nginx/error.log;
    # or
    error_log /dev/null crit;
  • Vuelva a cargar la configuración de Nginx:
  • Aplique los cambios volviendo a cargar Nginx:

    sudo nginx -t && sudo service nginx reload

    o

    sudo nginx -t && sudo systemctl reload nginx

¿Por qué es importante el registro de depuración?

Los logs de depuración proporcionan información detallada sobre el rendimiento del servidor al recoger los rastros y ayudar a los administradores a solucionar los problemas con mayor rapidez. También mejoran la seguridad general.

Los logs de depuración ayudan a:

  • Proporcionar mensajes de error detallados que ayudan a identificar y solucionar problemas. Estos incluyen errores de configuración y comportamientos anómalos.
  • Proporcionar información detallada sobre cómo procesa Nginx las solicitudes. Lo anterior puede ser crucial para depurar reglas de reescritura, configuraciones de proxy u otras configuraciones avanzadas.
  • Identificar los cuellos de botella o las operaciones lentas para optimizar el rendimiento del servidor y mejorar los tiempos de respuesta.
  • Garantizar que las configuraciones de Nginx funcionen según lo previsto.

Implemente la observabilidad completa para los logs Nginx de nivel de depuración con ManageEngine Log360

ManageEngine Log360 es una solución SIEM avanzada que recopila, almacena y analiza logs de varias fuentes. La extensión Nginx de Log360 permite reforzar el servidor web mediante la ingesta de logs y la obtención de información exhaustiva sobre el tráfico web, los archivos confidenciales a los que se accede y el funcionamiento de la caché de su servidor.

Los informes out-of-the-box de Log360 le aportan la información que necesita para tener un resumen general completo de lo que ocurre en su servidor. Estos informes le ayudarán a:

  • Monitorear los códigos de estado HTTP de éxito, redirección, errores cliente/servidor y respuestas informativas.
  • Analizar las solicitudes ascendentes, los redireccionamientos y la eficiencia de la caché. Esto garantiza un rendimiento y una seguridad óptimos del servidor.
  • Identificar rutas URI lentas, servidores virtuales y clientes principales que generan errores 4xx. Lo anterior proporciona información sobre posibles abusos.
  • Realizar un control del tráfico general del servidor web, las tasas de solicitud, el acceso a URI, la actividad del servidor virtual y el rendimiento de SSL (tendencias de éxito/fracaso).

El motor de correlación de Log360 correlaciona los datos de Nginx con los dispositivos de red y los logs de la nube para identificar anomalías. Ofrece una información profunda del comportamiento de los usuarios. Esto ayuda a detectar incidentes complejos como el intento de inyección de carga útil JNDI de Log4Shell y el escalamiento de privilegios del servidor.

Log360 también ayuda a su organización a cumplir estándares como PCI DSS, HIPAA, y el GDPR. Estos informes listos para la auditoría están al alcance de un clic y pueden exportarse fácilmente.

¿Qué sigue?

Monitoreo del desempeño de Nginx hecho fácil con ManageEngine Log360.