39 lines
1.1 KiB
Markdown
39 lines
1.1 KiB
Markdown
|
|
# Core Monitoring Module (`APP_CORE`)
|
||
|
|
|
||
|
|
The **Core Monitoring** module provides the backend logic for collecting, extracting, and serving OpenVPN usage statistics.
|
||
|
|
|
||
|
|
## Components
|
||
|
|
|
||
|
|
1. **Mining API (`openvpn_api_v3.py`)**:
|
||
|
|
- A Flask-based REST API running on port `5001`.
|
||
|
|
- Serves real-time data, authentication (JWT), and historical statistics.
|
||
|
|
- Connects to the SQLite database `ovpmon.db`.
|
||
|
|
|
||
|
|
2. **Data Gatherer (`openvpn_gatherer_v3.py`)**:
|
||
|
|
- A background service/daemon.
|
||
|
|
- Parses OpenVPN server logs (`status.log`).
|
||
|
|
- Aggregates bandwidth usage into time-series tables (`usage_history`, `stats_hourly`, etc.).
|
||
|
|
|
||
|
|
## Configuration
|
||
|
|
|
||
|
|
Configuration is handled via `config.ini` (typically located in the project root or `/etc/openvpn/monitor/`).
|
||
|
|
|
||
|
|
## Development
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Setup Environment
|
||
|
|
python3 -m venv venv
|
||
|
|
source venv/bin/activate
|
||
|
|
pip install -r requirements.txt
|
||
|
|
|
||
|
|
# Run API
|
||
|
|
python3 openvpn_api_v3.py
|
||
|
|
|
||
|
|
# Run Gatherer (in separate terminal)
|
||
|
|
python3 openvpn_gatherer_v3.py
|
||
|
|
```
|
||
|
|
|
||
|
|
## API Documentation
|
||
|
|
|
||
|
|
Full API documentation is available in `DOCS/Core_Monitoring/API_Reference.md`.
|