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:
- Abra o terminal e navegue até o diretório
/home/labex/project. - 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 arquivooutput1.
- Verifique o conteúdo do arquivo
output1para 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:
- 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 arquivooutput2.
- Verifique o conteúdo do arquivo
output2para 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:
- 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,.cssou.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 arquivooutput3.
- Verifique o conteúdo do arquivo
output3para 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:
- 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 arquivooutput4.
- Verifique o conteúdo do arquivo
output4para 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.



