Cómo habilitar archivos de registro de acceso y error en Nginx

1 mar 2021 5 min di lettura
Cómo habilitar archivos de registro de acceso y error en Nginx
Indice dei contenuti

Introducción

Nginx es un servidor proxy inverso y HTTP de código abierto de alto rendimiento responsable de administrar la carga de algunos de los sitios más grandes de Internet. Al administrar servidores web NGINX, una de las tareas más frecuentes que realiza es verificar los archivos de registro.

Saber cómo configurar y leer los registros es muy útil al solucionar problemas de su servidor o aplicación, ya que proporcionan información detallada de depuración.

Nginx escribe sus registros de eventos en dos tipos de registros: registros de acceso y registros de errores. Los registros de acceso escriben información sobre las solicitudes de los clientes y los registros de errores escriben información sobre los problemas del servidor y de las aplicaciones.

Este artículo le muestra cómo configurar y leer los registros de acceso y error de Nginx.

Si desea configurar los registros de acceso y los registros de errores en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Configurar registros de acceso

Cada vez que se procesa una solicitud de cliente, Nginx genera un nuevo evento en el registro de acceso. Cada registro de evento contiene una marca de tiempo e incluye información diversa sobre el cliente y el recurso solicitado. Los registros de acceso pueden mostrarle dónde están los visitantes, qué página visitan, cuánto tiempo pasan en la página y más.

La log_format permite definir el formato de los mensajes registrados. La access_log habilita y establece la ubicación del archivo de registro y el formato utilizado.

La sintaxis más básica de la access_log es la siguiente:

access_log log_file log_format;

log_file es la ruta completa al archivo de registro y log_format es el formato utilizado por el archivo de registro.

El registro de acceso se puede activar en el bloque de directiva http, server o location

De forma predeterminada, el registro de acceso está habilitado globalmente en la http dentro del archivo de configuración principal de Nginx /etc/nginx/nginx.conf:

http {...
 access_log /var/log/nginx/access.log;...
 }

Para una mejor legibilidad, se recomienda que configure un archivo de registro de acceso separado para cada bloque de servidor. La access_log establecida en la server reemplaza a la establecida en la /etc/nginx/conf.d/domain.com.conf http (top level) /etc/nginx/conf.d/domain.com.conf:

http {...
 access_log /var/log/nginx/access.log;...

 server {
 server_name domain.com
 access_log /var/log/nginx/domain.access.log;...
 }
 }

Si no se especifica ningún formato de registro, Nginx usa el formato combinado predeterminado que se ve así:

log_format combined '$remote_addr - $remote_user [$time_local] '
 '"$request" $status $body_bytes_sent '
 '"$http_referer" "$http_user_agent"';

Para cambiar el formato de grabación, reemplace la configuración predeterminada o defina una nueva. Por ejemplo, para definir un nuevo formato de publicación llamado personalizado (personalizado) que extenderá el formato combinado con el X-Forwarded-For, agregue la siguiente definición en la directiva http o server

log_format custom '$remote_addr - $remote_user [$time_local] "$request" '
 '$status $body_bytes_sent "$http_referer" '
 '"$http_user_agent" "$http_x_forwarded_for"';

Para usar el nuevo formato, especifique el nombre después del archivo de registro como se muestra a continuación:

access_log /var/log/nginx/access.log custom;

Si bien el registro de acceso proporciona información muy útil, ocupan espacio en el disco y pueden afectar el rendimiento del servidor. Si su servidor tiene pocos recursos y tiene un sitio web ocupado, es posible que desee deshabilitar el registro de acceso. Para hacer esto, establezca el valor de la directiva access_log off:

access_log off;

Configurar el registro de errores

Nginx escribe mensajes de aplicaciones y errores generales del servidor en el archivo de registro de errores. Si se producen errores en la aplicación web, el registro de errores es el primer lugar para comenzar a solucionar problemas.

La error_log habilita y establece la ubicación y la gravedad del registro de errores. Tiene la siguiente forma y se puede configurar dentro de un bloque http, server o location

error_log log_file log_level

El log_level establece el nivel de registro. Los niveles enumerados por gravedad (de menor a mayor) se enumeran a continuación:

  • debug: depurar mensajes.
  • info: mensajes de información.
  • notice - Avisos.
  • warn - Advertencias.
  • error: errores al procesar una solicitud.
  • crit - Problemas críticos. Requiere una acción rápida.
  • alert: alertas. Se deben tomar medidas de inmediato.
  • emerg - Situación de emergencia. El sistema está en un estado inutilizable.

Cada nivel de registro incluye los niveles más altos. Por ejemplo, si configura el nivel de registro para warn, Nginx también registrará mensajes: error, crit, alert y emerg.

Cuando no se especifica el parámetro log_level error.

De forma predeterminada, la error_log se define en la http dentro del archivo /etc/nginx/nginx.conf

http {...
 error_log /var/log/nginx/error.log;...
 }

Al igual que con los registros de acceso, se recomienda que configure un archivo de registro de errores por separado para cada bloque de servidor, que anula la configuración heredada de los niveles superiores.

Por ejemplo, para configurar el registro de error en el dominio domain.com, usaría warn:

http {...
 error_log /var/log/nginx/error.log;...

 server {
 server_name domain.com
 error_log /var/log/nginx/domain.error.log warn;...
 }
 }

Siempre que se cambie el archivo de configuración, se debe reiniciar el servicio Nginx para que los cambios surtan efecto.

Ubicación de los archivos de registro

De forma predeterminada, en la mayoría de las distribuciones de Linux, como Ubuntu, CentOS y Debian, los registros de acceso y error se encuentran en el /var/log/nginx.

Leer y comprender los archivos de registro de Nginx

Los archivos de registro se pueden abrir y analizar mediante comandos estándar como cat, less, grep, cut, awk, etc.

Aquí hay un registro de muestra del archivo de registro de acceso que usa el formato de registro de combinación Nginx predeterminado:

192.168.22.1 - - [14/Oct/2019:22:11:36 +0000] "GET /HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

Analicemos lo que significa cada campo del registro:

  • $remote_addr - 192.168.22.1 - La dirección IP del cliente que realiza la solicitud.
  • $remote_user - - - Usuario autenticado HTTP. Cuando no se establece el nombre de usuario, este campo muestra -.
  • [$time_local] - [14/Oct/2019:22:11:36 +0000] - Hora del servidor local.
  • "$request" - "GET /HTTP/1.1" - Tipo de solicitud, ruta y protocolo.
  • $status - 200 - El código de respuesta del servidor.
  • $body_bytes_sent - 396 - El tamaño de la respuesta del servidor en bytes.
  • "$http_referer" - "-": la URL de referencia.
  • "$http_user_agent" - Mozilla/5.0... - El agente de usuario del cliente (navegador web).

Utilice el tail para ver el archivo de registro en tiempo real:

tail -f access.log

Conclusión

Los registros de archivos proporcionan información útil sobre problemas del servidor y cómo los visitantes interactúan con su sitio web.

Nginx le permite configurar los registros de acceso y error según sus necesidades.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.