42 lines
1.4 KiB
Markdown
42 lines
1.4 KiB
Markdown
# 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
|
|
|
|
```mermaid
|
|
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 `paramiko` to execute remote commands on the PC and Raspberry Pi.
|
|
- **Web**: Uses `requests` to check the status and latency of web services.
|
|
- **Concurrency**: Uses `asyncio` to 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.
|