Análise e Otimização de Logs Nginx

LinuxBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como realizar a análise de logs em logs de acesso de um servidor Nginx. Você recuperará informações valiosas dos logs, como os principais endereços IP por contagem de acessos, os endereços IP que acessaram o servidor no mínimo 10 vezes, as requisições mais acessadas e os endereços de requisição com status 404.

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como recuperar os 5 endereços IP com o maior número de acessos a partir de uma data específica
  • Como encontrar todos os endereços IP que acessaram o servidor no mínimo 10 vezes dentro de um intervalo de datas especificado
  • Como recuperar as dez requisições mais acessadas do arquivo de log, excluindo arquivos e recursos estáticos
  • Como escrever todos os endereços de requisição com status 404 do arquivo de log

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Analisar e extrair informações significativas dos logs de acesso do Nginx
  • Automatizar tarefas de análise de logs usando shell scripting
  • Compreender e aplicar técnicas comuns de análise de logs, como filtragem, ordenação e contagem
  • Gerenciar e organizar os resultados da análise de forma estruturada

Recuperar os 5 Endereços IP com o Maior Número de Acessos em 10 de Abril de 2015

Nesta etapa, você aprenderá como recuperar os 5 endereços IP com o maior número de acessos do arquivo access.log em 10 de abril de 2015. Siga as etapas abaixo para concluir esta etapa:

  1. Abra o terminal e navegue até o diretório /home/labex/project.
  2. Use o seguinte comando para recuperar os 5 endereços IP com o maior número de acessos de 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 faz o seguinte:

  • grep '10/Apr/2015' access.log: Filtra o arquivo de log para incluir apenas as linhas de 10 de abril de 2015.
  • awk '{print $1}': Extrai o endereço IP (o primeiro campo) de cada linha do log.
  • sort: Ordena os endereços IP.
  • uniq -c: Conta o número de ocorrências de cada endereço IP.
  • sort -rn: Ordena os endereços IP pela contagem em ordem decrescente.
  • head -5: Seleciona os 5 principais endereços IP.
  • awk '{print $2}': Extrai o endereço IP (o segundo campo) da saída ordenada e contada.
  • > output1: Redireciona a saída para o arquivo output1.
  1. Verifique o conteúdo do arquivo output1 para garantir que ele contenha os 5 endereços IP com o maior número de acessos de 10 de abril de 2015, com um endereço IP por linha e sem linhas em branco.
216.244.66.249
216.244.66.231
140.205.225.185
140.205.201.39
140.205.201.32

Encontrar Todos os Endereços IP que Acessaram o Servidor no Mínimo 10 Vezes a Partir de 11 de Abril de 2015

Nesta etapa, você aprenderá como encontrar todos os endereços IP que acessaram o servidor no mínimo 10 vezes entre 11 de abril de 2015. Siga as etapas abaixo para concluir esta etapa:

  1. Use o seguinte comando para encontrar todos os endereços IP que acessaram o servidor no mínimo 10 vezes entre 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 faz o seguinte:

  • grep '11/Apr/2015' access.log: Filtra o arquivo de log para incluir apenas as linhas de 11 de abril de 2015.
  • awk '{print $1}': Extrai o endereço IP (o primeiro campo) de cada linha do log.
  • sort: Ordena os endereços IP.
  • uniq -c: Conta o número de ocorrências de cada endereço IP.
  • awk '$1 >= 10 {print $2}': Filtra os endereços IP que têm uma contagem de 10 ou mais e imprime o endereço IP (o segundo campo).
  • > output2: Redireciona a saída para o arquivo output2.
  1. Verifique o conteúdo do arquivo output2 para garantir que ele contenha todos os endereços IP que acessaram o servidor no mínimo 10 vezes entre 11 de abril de 2015, com um endereço IP por linha e sem linhas em branco.
108.245.182.93
123.127.3.30
140.205.201.39
216.244.66.231
216.244.66.249
218.75.230.17

Recuperar as Dez Requisições Mais Acessadas do Arquivo de Log

Nesta etapa, você aprenderá como recuperar as dez requisições mais acessadas do arquivo access.log, excluindo arquivos estáticos, imagens ou recursos semelhantes. Siga as etapas abaixo para concluir esta etapa:

  1. Use o seguinte comando para recuperar as dez requisições mais acessadas do arquivo de log:
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 faz o seguinte:

  • grep -vE '(/robots.txt|\.js|\.css|\.png)' access.log: Filtra o arquivo de log para excluir linhas que contenham /robots.txt, .js, .css ou .png.
  • awk '{print $7}': Extrai o endereço da requisição (o sétimo campo) de cada linha do log.
  • sort: Ordena os endereços das requisições.
  • uniq -c: Conta o número de ocorrências de cada endereço de requisição.
  • sort -rn: Ordena os endereços das requisições pela contagem em ordem decrescente.
  • head -10: Seleciona os 10 principais endereços de requisição.
  • awk '{print $2}': Extrai o endereço da requisição (o segundo campo) da saída ordenada e contada.
  • > output3: Redireciona a saída para o arquivo output3.
  1. Verifique o conteúdo do arquivo output3 para garantir que ele contenha as dez requisições mais acessadas do arquivo de log, com um endereço de requisição por linha e sem linhas em branco.
/
/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

Escrever Todos os Endereços de Requisição com Status 404 do Arquivo de Log

Nesta etapa, você aprenderá como escrever todos os endereços de requisição com um status 404 do arquivo access.log para o arquivo output4. Siga as etapas abaixo para concluir esta etapa:

  1. Use o seguinte comando para escrever todos os endereços de requisição com um status 404 do arquivo de log para o arquivo output4:
grep ' 404 ' access.log | awk '{print $7}' | sort | uniq > output4

Este comando faz o seguinte:

  • grep ' 404 ' access.log: Filtra o arquivo de log para incluir apenas as linhas que contêm um código de status 404.
  • awk '{print $7}': Extrai o endereço da requisição (o sétimo campo) de cada linha do log.
  • sort: Ordena os endereços das requisições.
  • uniq: Remove quaisquer endereços de requisição duplicados.
  • > output4: Redireciona a saída para o arquivo output4.
  1. Verifique o conteúdo do arquivo output4 para garantir que ele contenha todos os endereços de requisição com um status 404 do arquivo de log, com um endereço de requisição por linha e sem duplicatas.
/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
    ...

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar