/webserver-log-analyzer

Log analyzer for web server.

Primary LanguageJavaApache License 2.0Apache-2.0

Web Server Log Analyzer

The goal of this application is parse a web server access log file, load the log to MySQL and check if a given IP makes more than a certain number of requests for the given duration.

This application was built on Spring Boot and deployed on Docker Compose.

Running Application

  1. Access application root directory
  2. Execute run-all.sh file

Usage

Submit a request using any HTTP client, as curl for example:

curl -v -X POST -H "Content-Type: application/json" 'http://localhost:9000/api/v1/analyze' -d '{"startDate":"2017-01-01.13:00:00", "duration":"DAILY", "threshold":250}'

Load Test

Load test performed using a file with 116.484 rows.
Ubuntu 18.04.1 LTS CPU i5-7600K 16GB RAM

Tool Versions

  • Gradle 4.10.2
  • Java Open JDK 1.8.0_191
  • Spring Boot 1.5.18.RELEASE
  • Docker 18.09.0
  • Docker Compose 1.23.1
  • MySQL 8.0.13
  • HikariCP 3.2.0

Dependencies

  • Unix Based OS
  • Java >= 8
  • Gradle >= 4.0
  • Docker >= 18.06.0
  • Docker Compose >= 1.22.0

License

Apache License, Version 2.0, January 2004.