Este projeto tem como objetivo construir um pipeline simples de análise de logs de servidores web, utilizando Python e bibliotecas como Pandas e Requests. O pipeline segue as etapas de Extração, Transformação e Geolocalização dos dados dos logs, facilitando a análise e visualização de informações relevantes sobre acessos e requisições ao servidor.
- Descrição
- Estrutura do Projeto
- Como Executar
- Principais Funcionalidades
- Exemplo de Uso
- Dependências
- Licença
O pipeline consiste em:
- Extração: Leitura dos arquivos de log do servidor web.
- Transformação: Estruturação dos dados extraídos em um DataFrame, separando informações como IP, data/hora, método HTTP, recurso, status, etc.
- Geolocalização: Utilização de uma API pública para buscar informações de localização dos endereços IP presentes nos logs.
.
├── ArquivosLogs/
│ └── server_example.log
├── index.ipynb
└── README.md
ArquivosLogs/server_example.log
: Exemplo de arquivo de log de servidor web.index.ipynb
: Notebook principal com todo o pipeline de análise.README.md
: Este arquivo de documentação.
-
Clone este repositório:
git clone https://github.com/kingsonPaxe/Projecto1-Construcao-de-uma-pipline-para-analise-de-logs-de-servidores-web.git cd Projecto1-Construcao-de-uma-pipline-para-analise-de-logs-de-servidores-web
-
Instale as dependências necessárias:
pip install pandas requests
-
Abra o notebook
index.ipynb
em um ambiente Jupyter (Jupyter Notebook, JupyterLab, Google Colab, etc.) e execute as células sequencialmente.
- Leitura e extração de dados de arquivos de logs do servidor.
- Transformação dos dados para uma estrutura tabular (DataFrame).
- Separação automática de campos relevantes: endereço IP, data/hora, método, recurso, protocolo, status HTTP, quantidade de bytes, etc.
- Geolocalização de IPs usando a API pública
ip-api.com
. - Análise exploratória dos dados com Pandas.
No notebook, você encontrará exemplos como:
-
Leitura do log:
with open(r"ArquivosLogs/server_example.log") as file_log: log = file_log.readlines()
-
Estruturação em DataFrame:
df = pd.DataFrame(data)
-
Geolocalização dos IPs:
resposta = rqts.get(f"http://ip-api.com/json/{ip}")
- Python 3.7+
- pandas
- requests
Instale as dependências com:
pip install pandas requests
Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Desenvolvido por kingsonPaxe.