https://github.com/evemilano/loggame
This project is a graphical application built with Pygame that visualizes real-time web server log data. By connecting to a remote server via SSH and tailing the Nginx access log, it dynamically displays client requests and server responses. Each client is represented as a dot on the screen, with lines illustrating requests and responses.
https://github.com/evemilano/loggame
analysis apache log logging logstalgia monitoring nginx python server system
Last synced: 2 months ago
JSON representation
This project is a graphical application built with Pygame that visualizes real-time web server log data. By connecting to a remote server via SSH and tailing the Nginx access log, it dynamically displays client requests and server responses. Each client is represented as a dot on the screen, with lines illustrating requests and responses.
- Host: GitHub
- URL: https://github.com/evemilano/loggame
- Owner: evemilano
- Created: 2024-07-08T10:17:02.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-08T10:53:19.000Z (almost 2 years ago)
- Last Synced: 2025-03-05T14:47:46.499Z (over 1 year ago)
- Topics: analysis, apache, log, logging, logstalgia, monitoring, nginx, python, server, system
- Language: Python
- Homepage: https://www.evemilano.com
- Size: 168 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Web Server Log Monitor Game

This project is a graphical application built using Pygame to visualize real-time web server log data. It reads log entries from a remote server, parses them, and represents each client request graphically. This can be useful for understanding the traffic and behavior of a web server in a dynamic and interactive way.
## Features
- Real-time log monitoring: Connects to a remote server via SSH and tails the Nginx access log.
- Graphical representation: Displays clients as dots and their requests as lines moving towards the server.
- Status indication: Uses different colors to represent the status of requests (successful, redirects, client errors, server errors).
- Interactive interface: Provides a real-time, animated view of web server activity.
## Requirements
- Python 3.x
- Pygame
- Paramiko
## Installation
1. Clone the repository:
git clone https://github.com/evemilano/LogGame.git
cd web-server-log-monitor-game
2. Install the dependencies:
pip install pygame paramiko
3. Setup your configuration:
Modify the variables log_file, ip, user, and keys_folder in the script to match your server's details.
## Configuration
- log_file: Path to the log file on the remote server (e.g., `/var/log/nginx/access.log`).
- ip: IP address of the remote server.
- user: Username for SSH login.
- keys_folder: Directory containing SSH keys to authenticate with the remote server.
## Usage
1. Run the script:
python log_monitor.py
2. Interactive visualization:
- The server is represented by a circle at the center of the screen.
- Clients appear as small dots scattered around the server.
- Lines indicate requests moving from clients to the server, with colors changing based on the response status.
## Code Explanation
- Pygame Initialization: Initializes the Pygame library and sets up the screen dimensions and colors.
- Client Class: Represents a client, holding its position and requests.
- Request Class: Represents a request, handling its animation and status display.
- SSH Key Finder: Attempts to connect to the server using available SSH keys and selects the correct one.
- Log Monitor: Connects to the remote server, tails the log file, and parses log entries.
- Flash Server: Changes the server's color to indicate the presence of client or server errors.
- Main Loop: The main game loop that updates and renders the graphical elements.
## License
This project is licensed under the MIT License - see the LICENSE file for details.
Made by https://www.evemilano.com