Webserver log analyser written in Ruby (UFCD 9191)
Go to file
Miguel Nogueira a088291440
docs: add project docs
Signed-off-by: Miguel Nogueira <me@nogueira.codes>
2024-05-20 14:12:20 +01:00
.cache First commit 2024-05-16 10:24:41 +01:00
.idea feat: draft: sort visits by month by ip 2024-05-19 22:09:41 +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
access.log refactor: update sample file name 2024-05-19 17:24:53 +01:00
code_of_conduct.md docs: add project docs 2024-05-20 14:12:20 +01:00
CONTRIBUTING.md docs: add project docs 2024-05-20 14:12:20 +01:00
Gemfile deps: add rubocop 2024-05-19 03:42:46 +01:00
Gemfile.lock deps: add rubocop 2024-05-19 03:42:46 +01:00
LICENSE.md docs: add project docs 2024-05-20 14:12:20 +01:00
main.rb feat(date): add explanatory comment, line separators for output 2024-05-20 10:15:36 +01:00
README.md docs: add project docs 2024-05-20 14:12:20 +01:00
replit_zip_error_log.txt First commit 2024-05-16 10:24:41 +01:00

Ruby - Análise de ficheiros de auditoria de servidores web

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 o filosofia do 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)