Cómo analizar los registros de Nginx en el sistema Linux

  

Los registros de Nginx en el sistema de Linux pueden ver los registros del sistema en ejecución y las descripciones de los errores. El análisis de los registros de Nginx puede comprender el estado del sistema en ejecución. Entonces, ¿cómo analizar el registro de Nginx del sistema Linux?

configuración del registro de Nginx tiene dos lugares: access_log y log_format.

Formato predeterminado:

access_log /data/logs/nginx-access.log;

log_format old ‘ $ remote_addr [$ time_local] $ status $ request_time $ body_bytes_sent ’

‘ " $ request " " $ http_referer " " $ http_user_agent " ’;

Creo que la mayoría de las personas que han usado Nginx están configuradas para el formato de registro Nginx predeterminado. Familiarizado, familiarizado con los contenidos del registro. Sin embargo, la configuración y el formato predeterminados son legibles, pero difíciles de calcular.

La política relacionada con el pincel de registro de Nginx se puede configurar:

Por ejemplo, configure el búfer, búfer lleno 32k para el pincel; si el búfer no está completo, la configuración del pincel forzado en el reloj de 5s es la siguiente:

access_log /data/logs/nginx-access.log buffer = 32k flush = 5s;

Esto determina si el registro se ve en tiempo real y el impacto del registro en la E /S del disco.

Una gran cantidad de variables que los registros de Nginx pueden registrar no aparecen en la configuración predeterminada:

Por ejemplo:

Tamaño de datos de solicitud: $ request_length

Devolver datos Tamaño: $ bytes_sent

Tiempo de solicitud: $ request_time

Número de serie de la conexión: $ connection

Solicitudes de conexión actuales: $ connection_requests

Nginx El formato predeterminado no está calculado y necesita convertirlo a un formato computable, como dividir cada campo con el carácter de control ^ A (crox + v ctrl + a en Mac).

El formato de log_format se puede cambiar así:

log_format nuevo ‘ $ remote_addr ^ A $ http_x_forwarded_for ^ A $ host ^ A $ time_local ^ A $ status ^ A ’

‘ $ request_time ^ A $ request_length ^ A $ bytes_sent ^ A $ http_referer ^ A $ request ^ A $ http_user_agent ’;

Esto es seguido por una herramienta común de línea de comandos de Linux:

Encuentre las URL y los horarios más visitados:

cat access.log |  Awk -F ‘ ^ A ’ ‘ {imprimir $ 10} ’ |  Ordenar |  Uniq -c

Buscar el archivo de registro actual 500 Acceso incorrecto:

cat access.log |  Awk -F ‘ ^ A ’ ‘ {if ($ 5 == 500) print $ 0} ’

Encuentre el archivo de registro actual Número de 500 errores:

cat access.log |  Awk -F ‘ ^ A ’ ‘ {if ($ 5 == 500) imprime $ 0} ’ |  Wc -l

Encuentre el número de 500 accesos de error en un minuto:

cat access.log |  Awk -F ‘ ^ A ’ ‘ {if ($ 5 == 500) imprime $ 0} ’ |  Grep ’ 09: 00 ’ |  Wc-l

Encuentre solicitudes lentas que duren más de 1 s:

tail -f access.log |  Awk -F ‘ ^ A ’ ‘ {if ($ 6》 1) imprime $ 0} ’

Si solo quieres ver algunos bits:

tail -f access.log |  Awk -F ‘ ^ A ’ ‘ {si ($ 6》 1) imprima $ 3 ″ | " $ 4} ’

Encuentre la URL con la mayoría de los errores 502:

cat access.log |  Awk -F ‘ ^ A ’ ‘ {if ($ 5 == 502) imprime $ 11} ’ |  Ordenar |  Uniq -c

Encuentre 200 páginas en blanco

cat access.log |  Awk -F ‘ ^ A ’ ‘ {if ($ 5 == 200 &&$ 8 "100) imprime $ 3 ″ | " $ 4 ″ | " $ 11 ″ | " $ 6} ’

Ver flujo de datos de registro en tiempo real

tail -f access.log |  Cat -e

o

tail -f access.log |  Tr ‘ ^ A ’ ‘ | ’

De acuerdo con esta idea, puede realizar muchos otros análisis, como el acceso más accesible de UA, la IP a la que se accede con más frecuencia, solicitar análisis que requieren mucho tiempo, solicitar análisis de tamaño de paquete de retorno;

Este es el prototipo de un gran sistema de análisis de registros web, que también es muy conveniente para los posteriores cálculos a gran escala de lotes y transmisión.

Lo anterior es todo el contenido del análisis del registro Nginx del sistema Linux, se puede ver que el registro Nginx todavía tiene un rol muy poderoso.

Copyright © Conocimiento de Windows All Rights Reserved