Webserver log analyser written in Ruby (UFCD 9191)
Go to file
2024-05-19 03:41:53 +01:00
.cache First commit 2024-05-16 10:24:41 +01:00
.idea docs: add optional objectives and challenges 2024-05-19 03:36:45 +01:00
.upm First commit 2024-05-16 10:24:41 +01:00
utils New logic 2024-05-17 12:56:03 +01:00
.gitignore First commit 2024-05-16 10:24:41 +01:00
.replit First commit 2024-05-16 10:24:41 +01:00
Gemfile First commit 2024-05-16 10:24:41 +01:00
Gemfile.lock First commit 2024-05-16 10:24:41 +01:00
main.rb New logic 2024-05-17 12:56:03 +01:00
README.md docs: fix typo 2024-05-19 03:41:53 +01:00
replit_zip_error_log.txt First commit 2024-05-16 10:24:41 +01:00
teambuilder.pt.log First commit 2024-05-16 10:24:41 +01:00

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