Nginx HTTP server tiene una instalación de registro fenomenal que es altamente personalizable. En este artículo, explicaremos cómo configurar sus propios formatos para registros de acceso y errores para Nginx en Linux.
el objetivo de esta guía es ayudarlo a comprender cómo se generan los registros, para configurar formatos de registro personalizados con fines de depuración, Solución de problemas o Análisis de lo que se desarrolla dentro de su servidor web, así como aplicaciones web (como solicitudes de seguimiento).,
lea también: 4 buenas herramientas de monitoreo y Administración de registros de código abierto para Linux
Este artículo está hecho de tres secciones que lo iluminarán sobre la configuración de registros de acceso / error y cómo habilitar el registro condicional en Nginx.
configurar los registros de acceso en Nginx
en Nginx, todas las solicitudes de cliente al servidor se vuelven a registrar en el registro de acceso en un formato especificado utilizando el módulo ngx_http_log_module.
El archivo de registro predeterminado es de registro/acceso.,log (normalmente / var/log/nginx / access_log en sistemas Linux) y el formato predeterminado para el registro es normalmente el formato combinado o principal (esto puede variar de una distribución a otra).
la directiva access_log (aplicable en el contexto http, server, location, if in location y limit except) se utiliza para establecer el archivo de registro y la directiva log_format (aplicable solo en el contexto http) se utiliza para establecer el formato de registro. El formato de registro se describe mediante variables comunes y variables que se generan solo en el momento en que se escribe un registro.,
la sintaxis para configurar un formato de registro es:
log_format format_name 'set_of_variables_to_define_format';
y la sintaxis para configurar el registro de acceso es:
lo siguiente es un extracto del archivo de configuración predeterminado de Nginx /etc/nginx/nginx.conf en CentOS 7.
este formato de registro produce la siguiente entrada de registro.
el siguiente es otro formato de registro útil que utilizamos para rastrear solicitudes a nuestras aplicaciones web utilizando algunas de las variables predeterminadas, lo más importante es que tiene el ID de solicitud y registra los detalles de la ubicación del cliente (paÍs, código de país, región y ciudad).,
Puede usarlo así:
access_log /var/log/nginx/access.log custom;
esto producirá una entrada de registro que aparecerá así.
Puede especificar varios registros utilizando las directivas access_log en el mismo nivel, aquí estamos usando más de un archivo de registro en el contexto http.
los siguientes son ejemplos de configuraciones de registro más avanzadas, que son útiles para formatos de registro que contienen variables relacionadas con la compresión y para crear archivos de registro comprimidos:
access_log /var/log/nginx/custom_log custom buffer 32k;access_log /path/to/log.gz compression gzip flush=5m;
configuración de registros de Error en Nginx
en caso de que Nginx experimente algún fallo técnico, registra la información relativa a ellos en el registro de errores. Estos problemas caen bajo diferentes niveles de gravedad: debug, info, notice, warn, error (Este es el nivel predeterminado y funciona globalmente), crit, alert o emerg.
el archivo de registro predeterminado es log / error.,log, pero normalmente se encuentra en / var/log/ nginx / en distribuciones Linux. La directiva error_log se usa para especificar el archivo de registro, y se puede usar en el contexto main, http, mail, stream, server, location (en ese orden).
también debe tener en cuenta que:
- Las configuraciones en el contexto principal siempre se heredan por niveles inferiores en el orden anterior.
- y las configuraciones en los niveles inferiores anulan las configuraciones heredadas de los niveles superiores.,
Puede configurar el registro de errores utilizando la siguiente sintaxis:
error_log /path/to/log_file log_level;
por ejemplo:
error_log /var/log/nginx/error_log warn;
esto le indicará a Nginx que registre todos los mensajes de tipo warn y los mensajes de nivel de registro más severos crit, alert y emerg.
en el siguiente ejemplo, se registrarán los mensajes de los niveles crit, alert y emerg.
error_log /var/www/example1.com/log/error_log crit;
considere la configuración a continuación, aquí, hemos definido el registro de errores en diferentes niveles (en el contexto http y del servidor)., En caso de error, el mensaje se escribe en un solo registro de errores, el más cercano al nivel donde ha aparecido el error.
Si utiliza más de una directiva error_log como en la configuración de abajo (mismo nivel), los mensajes se escriben en todos los registros especificados.
configurar el registro condicional en Nginx
en algunos casos, podemos querer que Nginx realice el registro condicional de mensajes., No todos los mensajes tienen que ser registrados por Nginx, por lo tanto podemos ignorar entradas de registro insignificantes o menos importantes de nuestros registros de acceso para instancias particulares.
Podemos usar el módulo ngx_http_map_module que crea variables cuyos valores dependen de los valores de otras variables. Los parámetros dentro de un bloque de mapa (que debe existir solo en el contenido http) especifican una asignación entre los valores de origen y los resultantes.
para este tipo de configuración, una solicitud no se registrará si la condición se evalúa como "0”
o una cadena vacía., Este ejemplo excluye las solicitudes con códigos de estado HTTP 2xx y 3XX.
http{map $status $condition {~^ 0; default 1;}server{access_log /path/to/access.log custom if=$condition;}}
Aquí hay otro ejemplo útil para depurar una aplicación web en una fase de desarrollo. Esto ignorará todos los mensajes y solo registrará la información de depuración.
puede encontrar más información, incluido el registro en syslog aquí.
Eso es todo por ahora! En esta guía, explicamos cómo configurar el formato de registro personalizado para los registros de acceso y errores en Nginx., Utilice el formulario de comentarios a continuación para hacer preguntas o compartir sus pensamientos sobre este artículo.