1.4 KiB
1.4 KiB
Architecture Overview
The ASF Infrastructure Monitor is a lightweight, real-time monitoring solution designed to track the health of local servers and web services.
System Components
graph TD
User((User Browser))
Caddy[Caddy Proxy]
MonitorApp[Monitor App Container]
subgraph "Local Network / Internet"
PC[Ubuntu Server PC]
PI[Raspberry Pi]
WebServices[Web Services]
end
User -->|HTTPS| Caddy
Caddy -->|HTTP| MonitorApp
MonitorApp -->|SSH| PC
MonitorApp -->|SSH| PI
MonitorApp -->|HTTP/Ping| WebServices
1. Frontend (Client-Side)
- Technology: HTML5, Vanilla CSS, JavaScript (ES6+).
- Libraries: Chart.js for gauges, FontAwesome for icons.
- Functionality: Fetches data from the backend every 60 seconds and updates the UI dynamically without page reloads.
2. Backend (Server-Side)
- Technology: Python 3.11, FastAPI.
- Monitoring Logic:
- SSH: Uses
paramikoto execute remote commands on the PC and Raspberry Pi. - Web: Uses
requeststo check the status and latency of web services.
- SSH: Uses
- Concurrency: Uses
asyncioto perform all monitoring checks in parallel, ensuring fast response times.
3. Deployment
- Containerization: Docker & Docker Compose.
- Proxy: Caddy handles SSL termination and routes traffic to the container.