Análisis y optimización de registros de Nginx

LinuxBeginner
Practicar Ahora

Introducción

En este proyecto, aprenderás a realizar un análisis de registros en los registros de acceso de un servidor Nginx. Recuperarás información valiosa de los registros, como las direcciones IP con mayor número de accesos, las direcciones IP que accedieron al servidor como mínimo 10 veces, las solicitudes más accedidas y las direcciones de solicitud con un estado 404.

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo recuperar las 5 direcciones IP con mayor número de accesos a partir de una fecha específica
  • Cómo encontrar todas las direcciones IP que accedieron al servidor como mínimo 10 veces en un rango de fechas dado
  • Cómo recuperar las diez solicitudes más accedidas del archivo de registro, excluyendo archivos estáticos y recursos
  • Cómo escribir todas las direcciones de solicitud con un estado 404 del archivo de registro

🏆 Logros

Después de completar este proyecto, serás capaz de:

  • Analizar y extraer información significativa de los registros de acceso de Nginx
  • Automatizar tareas de análisis de registros utilizando scripting de shell
  • Comprender y aplicar técnicas comunes de análisis de registros, como filtrado, clasificación y conteo
  • Administrar y organizar los resultados del análisis de manera estructurada

Recuperar las 5 direcciones IP con el mayor número de accesos a partir del 10 de abril de 2015

En este paso, aprenderás a recuperar las 5 direcciones IP con mayor número de accesos del archivo access.log el 10 de abril de 2015. Siga los pasos siguientes para completar este paso:

  1. Abra la terminal y navegue hasta el directorio /home/labex/project.
  2. Utilice el siguiente comando para recuperar las 5 direcciones IP con mayor número de accesos a partir del 10 de abril de 2015:
grep '10/Apr/2015' access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -5 | awk '{print $2}' > output1

Este comando realiza lo siguiente:

  • grep '10/Apr/2015' access.log: Filtra el archivo de registro para incluir solo líneas a partir del 10 de abril de 2015.
  • awk '{print $1}': Extrae la dirección IP (el primer campo) de cada línea de registro.
  • sort: Ordena las direcciones IP.
  • uniq -c: Cuenta el número de ocurrencias de cada dirección IP.
  • sort -rn: Ordena las direcciones IP por el recuento en orden descendente.
  • head -5: Selecciona las 5 direcciones IP con mayor número de accesos.
  • awk '{print $2}': Extrae la dirección IP (el segundo campo) de la salida ordenada y contada.
  • > output1: Redirige la salida al archivo output1.
  1. Verifique el contenido del archivo output1 para asegurarse de que contiene las 5 direcciones IP con mayor número de accesos a partir del 10 de abril de 2015, con una dirección IP por línea y sin líneas en blanco.
216.244.66.249
216.244.66.231
140.205.225.185
140.205.201.39
140.205.201.32
✨ Revisar Solución y Practicar

Encontrar todas las direcciones IP que accedieron al servidor como mínimo 10 veces entre el 11 de abril de 2015

En este paso, aprenderás a encontrar todas las direcciones IP que accedieron al servidor como mínimo 10 veces entre el 11 de abril de 2015. Siga los pasos siguientes para completar este paso:

  1. Utilice el siguiente comando para encontrar todas las direcciones IP que accedieron al servidor como mínimo 10 veces entre el 11 de abril de 2015:
grep '11/Apr/2015' access.log | awk '{print $1}' | sort | uniq -c | awk '$1 >= 10 {print $2}' > output2

Este comando realiza lo siguiente:

  • grep '11/Apr/2015' access.log: Filtra el archivo de registro para incluir solo líneas a partir del 11 de abril de 2015.
  • awk '{print $1}': Extrae la dirección IP (el primer campo) de cada línea de registro.
  • sort: Ordena las direcciones IP.
  • uniq -c: Cuenta el número de ocurrencias de cada dirección IP.
  • awk '$1 >= 10 {print $2}': Filtra las direcciones IP que tienen un recuento de 10 o más, y muestra la dirección IP (el segundo campo).
  • > output2: Redirige la salida al archivo output2.
  1. Verifique el contenido del archivo output2 para asegurarse de que contiene todas las direcciones IP que accedieron al servidor como mínimo 10 veces entre el 11 de abril de 2015, con una dirección IP por línea y sin líneas en blanco.
108.245.182.93
123.127.3.30
140.205.201.39
216.244.66.231
216.244.66.249
218.75.230.17
✨ Revisar Solución y Practicar

Recuperar las diez solicitudes más accedidas del archivo de registro

En este paso, aprenderás a recuperar las diez solicitudes más accedidas del archivo access.log, excluyendo archivos estáticos, imágenes o recursos similares. Siga los pasos siguientes para completar este paso:

  1. Utilice el siguiente comando para recuperar las diez solicitudes más accedidas del archivo de registro:
grep -vE '(/robots.txt|\.js|\.css|\.png)' access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -10 | awk '{print $2}' > output3

Este comando realiza lo siguiente:

  • grep -vE '(/robots.txt|\.js|\.css|\.png)' access.log: Filtra el archivo de registro para excluir líneas que contengan /robots.txt, .js, .css o .png.
  • awk '{print $7}': Extrae la dirección de solicitud (el séptimo campo) de cada línea de registro.
  • sort: Ordena las direcciones de solicitud.
  • uniq -c: Cuenta el número de ocurrencias de cada dirección de solicitud.
  • sort -rn: Ordena las direcciones de solicitud por el recuento en orden descendente.
  • head -10: Selecciona las diez direcciones de solicitud con mayor número de accesos.
  • awk '{print $2}': Extrae la dirección de solicitud (el segundo campo) de la salida ordenada y contada.
  • > output3: Redirige la salida al archivo output3.
  1. Verifique el contenido del archivo output3 para asegurarse de que contiene las diez solicitudes más accedidas del archivo de registro, con una dirección de solicitud por línea y sin líneas en blanco.
/
/j_acegi_security_check
/favicon.ico
400
/xref/linux-3.18.6/
/pmd/index.php
/pma/index.php
/phpMyAdmin/index.php
/phpmyadmin/index.php
check.best-proxies.ru:80
✨ Revisar Solución y Practicar

Escribir todas las direcciones de solicitud con un estado 404 del archivo de registro

En este paso, aprenderás a escribir todas las direcciones de solicitud con un estado 404 del archivo access.log al archivo output4. Siga los pasos siguientes para completar este paso:

  1. Utilice el siguiente comando para escribir todas las direcciones de solicitud con un estado 404 del archivo de registro al archivo output4:
grep ' 404 ' access.log | awk '{print $7}' | sort | uniq > output4

Este comando realiza lo siguiente:

  • grep ' 404 ' access.log: Filtra el archivo de registro para incluir solo líneas que contengan un código de estado 404.
  • awk '{print $7}': Extrae la dirección de solicitud (el séptimo campo) de cada línea de registro.
  • sort: Ordena las direcciones de solicitud.
  • uniq: Elimina cualquier dirección de solicitud duplicada.
  • > output4: Redirige la salida al archivo output4.
  1. Verifique el contenido del archivo output4 para asegurarse de que contiene todas las direcciones de solicitud con un estado 404 del archivo de registro, con una dirección de solicitud por línea y sin duplicados.
/about/
/cgi?2
/cgi-bin/cgiSrv.cgi
/clusters.jsf
/dfshealth.jsp
/dnieyraqcvtu
/favicon.ico
/ganglia/index.php
/hadoop/dfshealth.jsp
/history/linux-3.18.6/arch/ia64/include/asm/processor.h
/history/linux-3.18.6/arch/m68k/amiga/
/history/linux-3.18.6/arch/m68k/kernel/
/history/linux-3.18.6/arch/s390/include/asm/lowcore.h
/history/linux-3.18.6/arch/s390/kernel/entry64.S
/history/linux-3.18.6/arch/tile/kernel/intvec_64.S
/history/linux-3.18.6/arch/unicore32/include/asm/thread_info.h
/history/linux-3.18.6/arch/unicore32/include/asm/unistd.h
/history/linux-3.18.6/arch/x86/include/asm/processor.h
/history/linux-3.18.6/arch/x86/include/asm/unistd.h
/history/linux-3.18.6/arch/x86/kernel/entry_64.S
 ...
✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.