Webserver log analyser written in Ruby (UFCD 9191)
|
||
---|---|---|
.cache | ||
.idea | ||
.upm | ||
utils | ||
.gitignore | ||
.replit | ||
access.log | ||
Gemfile | ||
Gemfile.lock | ||
main.rb | ||
README.md | ||
replit_zip_error_log.txt |
Ruby - Análise de ficheiros de auditoria Apache - UFCD 9191
Objetivos do programa
- Objetivo 1:
Número de contactos que um determinado IP realizou(Feito) - Objetivo 2:
Quais IPs resultaram no maior número de erros de cliente (400-499)(Feito) - Objetivo 3:
Agrupar por tipo de cliente e saber que tipos de clientes contactam mais o site(Feito)
Sub-objetivos e desafios
- Agrupar visitas por IP por mês
- Exemplo: IP 5.15.124.2 visitou o site 20 veses em abril e gerou 4 erros no mesmo mês
- Criar funcionalidade para enviar denúncias ao AbuseIPDB (OPCIONAL)
- Recolher os três principais suspeitos e oferecer a escolha de denúncia ao utilizador (Ex. os IPs com mais erros suspeitos, excl. erros 404)
- Modo pesquisa (OPCIONAL)
- Oferecer ao utilizador uma forma de introduzir um IP para obter todas as estatísticas que o programa já oferece, e avisar caso o IP não tenha contactado o site
- Whois e reputação do IP (OPCIONAL)
- Modo não-interativo (OPCIONAL)
- Permitir que o utilizador controle o programa e o seu output através da linha de comandos (ex. rubystats --in access.log -i x.x.x.x -v -e)
- Garantir que o programa segue os príncipios Unix
- Menu interativo (OPCIONAL)
- Permitir ao utilizador escolher que estatística pretende visualizar
- Tornar o programa mais modular, fácil de manter e de expandir (OPCIONAL);
- Permitir que o utilizardor escolha que tipo de log pretende analisar (Nginx/Apache/Lightspeed/IIS, etc) utilizando as mesmas funções utilitárias
- Adicionar testes a todas as funções utilitárias de modo a garantir que produzem o mesmo output esperado independentemente da implementação (OPCIONAL)