Files
leox-gpon-monitoring/README.md
Mateusz Gruszczyński 276d089aea env update
2026-01-03 23:35:29 +01:00

188 lines
3.2 KiB
Markdown

# GPON Monitor
Real-time monitoring for ONT/ONU GPON devices via OMCI telnet and web scraping with RRD-based historical graphs.
Work with LXT-010 S-H / H-D.
Tested on GPON stick SFP+ LXT-010S-H
## Quick Start
### 1. Clone or download the project
```bash
https://gitea.linuxiarz.pl/gru/leox-gpon-monitoring
cd leox-gpon-monitoring
```
### 2. Configure .env file
```bash
cp .env.example .env
nano .env
```
Edit basic parameters:
```env
GPON_HOST=192.168.100.1
GPON_USERNAME=leox
GPON_PASSWORD=leolabs_7
EXTERNAL_PORT=8080
[...]
```
### 3. Start the container
```bash
docker-compose up -d
```
### 4. Open in browser
```
http://localhost:8080
```
## Features
- Real-time metrics: RX/TX optical power, temperature, uptime
- Historical graphs: 1 hour to 5 years
- Statistics: packets, bytes, FEC errors, data volume
- Alerts: optical power threshold monitoring
- Prometheus metrics endpoint
## Commands
```bash
# Start
docker-compose up -d
# Stop
docker-compose down
# View logs
docker-compose logs -f
# Restart
docker-compose restart
# Rebuild after code changes
docker-compose build
docker-compose up -d
# Remove everything including RRD data
docker-compose down -v
rm -rf data/rrd/*
```
## Directory Structure
```
leox-gpon-monitoring/
├── .env # Configuration (HOST, PORT, credentials)
├── docker-compose.yml
├── Dockerfile
├── data/rrd/ # RRD data files (persistent volume)
└── ...
```
## Configuration
### Change web port
```env
EXTERNAL_PORT=80 # External web port (default: 8080)
LISTEN_PORT=8080 # Internal port (usually no need to change)
```
### Change polling interval
```env
POLL_INTERVAL=60 # Seconds (default: 60s)
```
### Alert thresholds
```env
RX_POWER_MIN=-28.0
RX_POWER_MAX=-8.0
TX_POWER_MIN=0.5
TX_POWER_MAX=4.0
TEMPERATURE_MAX=85.0
```
## API Endpoints
```bash
# Current data
curl http://localhost:8080/api/current
# Optical history (RX/TX power, temperature)
curl http://localhost:8080/api/history/optical/24h
# Traffic history (packets, bytes)
curl http://localhost:8080/api/history/traffic/7d
# FEC errors history
curl http://localhost:8080/api/history/fec/1h
# Prometheus metrics
curl http://localhost:8080/metrics
```
Available periods: `1h`, `6h`, `12h`, `24h`, `3d`, `7d`, `14d`, `30d`, `60d`, `90d`, `120d`, `1y`, `2y`, `5y`
## Troubleshooting
### No connection to ONT
```bash
# Check logs
docker-compose logs -f
# Verify ONT is reachable
ping 192.168.100.1
# Test telnet connection
telnet 192.168.100.1 23
```
### No data on graphs
```bash
# Check if RRD files are created
ls -lah data/rrd/
# Wait 2-3 minutes for initial data collection
```
### Reset all data
```bash
docker-compose down
rm -rf data/rrd/*.rrd
docker-compose up -d
```
## Requirements
- Docker
- Docker Compose
- LEOX device with telnet access (port 23)
## Development
### Development mode with hot-reload
```bash
docker run -it --rm \
-p 8080:8080 \
-v $(pwd):/app \
-v $(pwd)/data/rrd:/data/rrd \
--env-file .env \
gpon-monitor:latest
```
### Manual build
```bash
docker build -t gpon-monitor:latest .
docker run -d -p 8080:8080 --env-file .env gpon-monitor:latest
```
## License
MIT
## Author
linuxiarz.pl Mateusz Gruszczyński