An interactive Streamlit dashboard to analyze web server log files by date, identify top contributing IPs and peak traffic hours, and visualize results using Plotly charts.
- 📂 Upload a server log file (
.txt
or.log
). - 📅 Parse logs based on a target date (format:
DD/Mon/YYYY
). - 🧠 Identify IP addresses generating 85% of the traffic.
- ⏰ Identify peak hours contributing to 70% of the traffic.
- 📊 Interactive horizontal bar charts for easy visualization.
- 🗂️ View raw data tables for detailed inspection.
Technology | Usage |
---|---|
Python | Core programming language |
Streamlit | Building interactive web dashboard |
Pandas | Data manipulation and analysis |
Plotly | Interactive visualizations (bar charts) |
re (Regex) | Parsing log file entries |
collections.Counter | Efficient counting of IPs and hours |
- Upload a server log file (Apache or Nginx style logs).
- Enter a specific date (example:
17/May/2015
). - The app will:
- Parse each line using regular expressions.
- Filter logs for the selected date.
- Count the number of requests per IP address and per hour.
- Visualize:
- Top IPs responsible for 85% of the requests.
- Peak traffic hours contributing to 70% of the traffic.
- Explore raw tabular data below the charts.
Example log line: 92.168.1.1 - - [17/May/2015:10:05:00] "GET /index.html HTTP/1.1" 200 2326 Regex Pattern Used: (\d+.\d+.\d+.\d+) - - [(\d{2}/\w{3}/\d{4}):(\d{2})
Extracts:
- IP Address
- Date
- Hour
This project is licensed under the MYOWNWORK.
Feel free to use and customize it!
- Employing distributed Computing HDFS,PYSPARK
- For Advance visulaization Tableau , PowderBI
- Allow uploading multiple log files at once.
- Use date picker widgets instead of manual text input.
- Add download/export option for analyzed data.
- Improve error handling for incorrect file formats.
- Add trend lines and time series graphs.