Files
network-monitor/README.md

172 lines
5.8 KiB
Markdown

# Network Connectivity Monitor
A Python-based network monitoring tool designed to diagnose connectivity issues on your OPNsense/TP-Link network infrastructure.
## Monitored Devices
- **10.0.0.254** - OPNsense Firewall
- **10.0.0.253** - TP-Link AX5400 (253)
- **10.0.0.252** - TP-Link Device (252)
- **10.0.0.55** - DNS/Other Service
## Features
- ✅ Real-time connectivity monitoring with live status updates
- 📊 Detailed statistics including success rates and failure patterns
- 🔍 Automatic failure incident detection and grouping
- 📈 Final comprehensive report with health assessment
- ⏱️ Configurable monitoring duration and ping intervals
- 🛑 Graceful interrupt handling (Ctrl+C for early stop)
## Requirements
- Python 3.6+
- Unix-like system with `ping` command
- No external Python dependencies required!
## Usage
### Quick Start
```bash
# Make the script executable
chmod +x network_monitor.py
# Run with default settings (1 hour monitoring)
./network_monitor.py
```
Or run directly with Python:
```bash
python3 network_monitor.py
```
### Configuration
Edit the following constants at the top of the script to customize:
```python
MONITOR_IPS = {
"10.0.0.254": "OPNsense Firewall",
"10.0.0.253": "TP-Link AX5400 (253)",
"10.0.0.252": "TP-Link Device (252)",
"10.0.0.55": "DNS/Other Service"
}
PING_INTERVAL = 5 # seconds between ping checks
MONITOR_DURATION = 3600 # 1 hour in seconds
PING_TIMEOUT = 2 # seconds to wait for ping response
PING_COUNT = 1 # number of pings per check
```
### Example Output
**Live Status Screen:**
```
================================================================================
Network Connectivity Monitor - 2026-01-07 17:15:30
================================================================================
Monitoring Duration: 45s / 3600s (1.3%)
Next check in: 5s
--------------------------------------------------------------------------------
IP Address Device Status Success Rate
--------------------------------------------------------------------------------
10.0.0.254 OPNsense Firewall 🟢 UP 100.00% (9/9)
10.0.0.253 TP-Link AX5400 (253) 🟢 UP 100.00% (9/9)
10.0.0.252 TP-Link Device (252) 🔴 DOWN 88.89% (8/9)
10.0.0.55 DNS/Other Service 🟢 UP 100.00% (9/9)
--------------------------------------------------------------------------------
⚠️ CURRENT ISSUES:
• 10.0.0.252 (TP-Link Device (252)): 1 consecutive failures
```
**Final Report:**
```
================================================================================
FINAL MONITORING REPORT
================================================================================
Start Time: 2026-01-07 17:14:45
End Time: 2026-01-07 18:14:45
Duration: 3600 seconds
================================================================================
DEVICE SUMMARY:
--------------------------------------------------------------------------------
IP Address Device Success Rate Total Failures
--------------------------------------------------------------------------------
10.0.0.254 OPNsense Firewall ✅ 100.00% 0
10.0.0.253 TP-Link AX5400 (253) ✅ 100.00% 0
10.0.0.252 TP-Link Device (252) ⚠️ 98.61% 10
10.0.0.55 DNS/Other Service ✅ 100.00% 0
--------------------------------------------------------------------------------
DETAILED STATISTICS:
================================================================================
TP-Link Device (252) (10.0.0.252):
Total Checks: 720
Successful: 710 (98.61%)
Failed: 10 (1.39%)
Max Consecutive Failures: 3
First Failure: 17:25:10
Last Failure: 17:42:35
Failure Incidents: 2
Failure Timeline:
Incident 1: 17:25:10 - 17:25:20 (3 failures, 10s)
Incident 2: 17:42:25 - 17:42:35 (7 failures, 10s)
================================================================================
OVERALL ASSESSMENT:
⚠️ ISSUE ISOLATED: Only TP-Link Device (252) (10.0.0.252) had connectivity issues.
This suggests a device-specific problem rather than network-wide issue.
================================================================================
```
## Use Cases
### Diagnosing DHCP Issues
This tool was originally created to diagnose DHCP renewal loop problems causing high CPU usage on TP-Link routers. Run it before and after applying fixes to verify improvement.
### Network Stability Testing
Monitor your network infrastructure during configuration changes, firmware updates, or after new device installations to ensure stability.
### Intermittent Connection Troubleshooting
Identify patterns in connectivity issues that might not be immediately obvious. The incident grouping helps distinguish between temporary blips and recurring problems.
## Tips
- **Short Duration Test**: For quick diagnostics, edit `MONITOR_DURATION` to 300 (5 minutes)
- **Faster Checks**: Reduce `PING_INTERVAL` to 1 or 2 seconds for more granular data
- **Save Results**: Redirect output to a file: `./network_monitor.py > results.txt`
- **Background Running**: Use `nohup ./network_monitor.py &` to run in background
## Troubleshooting
**Permission Denied:**
```bash
chmod +x network_monitor.py
```
**Python Not Found:**
```bash
# Use python instead of python3
python network_monitor.py
```
**No Ping Command:**
This script requires the standard Unix `ping` utility. It should be available by default on Linux, macOS, and WSL.
## License
This script is provided as-is for network diagnostics. Feel free to modify and adapt for your specific needs!
## Related Issues
This tool helps diagnose the TP-Link AX5400 DHCP renewal loop issue documented in the OPNsense troubleshooting session.