# Esports Center Public Monitoring System This project provides a **publicly displayed** network monitoring system for our esports center. It shows real-time information about network capacity, server status, and local PCs (e.g., whether they are active or inactive). The system is built using **Prometheus**, **Grafana**, **SNMP Exporter**, and a custom Python script to monitor PC activity. ## Features - **PC Monitoring** (`PcMonitor/`): Monitors local PCs and displays their online/offline status. - **Network Monitoring** (`prometheus/` & `snmp_exporter/`): Tracks network usage, server health, and other SNMP-based data. - **Grafana Dashboards** (`grafana/dashboards/`): Publicly visible metrics with real-time updates. - **Prometheus Metrics**: Data collection and storage for analysis. - **Automated Deployment**: Not implemented yet - **More stuff to come** ## System Components - **Python Script (`PcMonitor.py`)**: Pings PCs and updates Prometheus metrics. - **Prometheus**: Collects metrics from the Python script and SNMP exporter. - **SNMP Exporter**: Gathers network and server data. - **Grafana**: Visualizes all collected metrics on a screen for public viewing. ## Setup Instructions ### 1. Install Dependencies Run the installation script to set up Prometheus, SNMP Exporter, and Grafana: ```sh ./deploy.sh ``` ### 2. Start the Monitoring Services To ensure all services are running, use: ```sh systemctl start prometheus systemctl start snmp_exporter systemctl start pc_monitor systemctl start grafana-server ``` ### 3. Access the Public Dashboard - **Prometheus UI:** `http://:9090` - **SNMP Exporter:** `http://snmp?target=` - **Grafana UI:** `http://:3000` - **Metrics Endpoint (for debugging):** `http://:8003/metrics` ### 4. Auto-Start Services on Boot To make sure everything restarts after a power outage, enable the services: ```sh systemctl enable prometheus systemctl enable snmp_exporter systemctl enable pc_monitor systemctl enable grafana-server ``` This system helps staff and players **stay informed** about network conditions and PC availability in real-time.But its mostly for fun 🚀