Created decent description.

This commit is contained in:
JBg
2025-03-12 08:30:00 +01:00
parent 56ede0ea76
commit f8cdee9011

133
README.md
View File

@@ -1,3 +1,132 @@
# Ping_monitor
# Network Monitor
Use test-connection to monitor whether devices are online
A PowerShell-based network monitoring tool that provides real-time status monitoring of multiple IP addresses with comprehensive logging features.
## Features
- **Real-time Network Monitoring**: Continuously pings specified IP addresses and displays their status
- **Visual Status Display**: Color-coded console output shows UP/DOWN status at a glance
- **Performance Metrics**: Tracks min/max/mean response times and success rates
- **Trend Indicators**: Shows whether response times are increasing, decreasing, or stable
- **Comprehensive Logging**: Multiple log types for different purposes
- **Flexible IP Configuration**: Supports both individual IPs and IP ranges
## Getting Started
### Prerequisites
- Windows with PowerShell 3.0 or later
- Administrative privileges (recommended for reliable ICMP ping)
### Installation
1. Download the `NetworkMonitor.ps1` script
2. No additional installation required
### Usage
Run the script in PowerShell:
```powershell
.\NetworkMonitor.ps1
```
To stop monitoring, press `Ctrl+C`.
## Configuration
Edit the script to modify the following:
### IP Addresses
Modify the `$addressDefinitions` array at the top of the script:
```powershell
$addressDefinitions = @(
"1.1.1.1", # Single IP address
"1.0.0.1", # Single IP address
"8.8.8.8-9" # IP range (will monitor 8.8.8.8 and 8.8.8.9)
)
```
### Monitoring Parameters
Adjust these values in the main monitoring loop:
```powershell
$pingInterval = 1 # Seconds between pings
$statsLogInterval = 15 # Minutes between logging statistics
$csvLogFrequency = 5 # Log every Nth ping to CSV
```
### Log Location
Change the log directory by modifying:
```powershell
$logFolder = ".\Logs" # Default is a "Logs" subfolder in the current directory
```
## Log Files
The script creates the following log files in the `Logs` folder:
| File | Description |
|------|-------------|
| `network_monitor.log` | General events and status changes |
| `statistics.log` | Periodic performance metrics |
| `ping_data.csv` | Structured ping data for analysis |
| `errors.log` | Detailed error information |
## Console Display
The console display shows:
- **IP Address**: The address being monitored
- **Status**: UP (green) or DOWN (red)
- **Min**: Minimum response time in milliseconds
- **Max**: Maximum response time in milliseconds
- **Mean**: Average response time in milliseconds
- **Success%**: Percentage of successful pings
- **Fails**: Count of failed pings
- **Trend**: Direction of recent response times (↑, ↓, or ━)
## Use Cases
- **Server Monitoring**: Track the availability of critical servers
- **Network Troubleshooting**: Identify intermittent connectivity issues
- **Performance Analysis**: Monitor response times over time
- **Historical Reporting**: Use CSV logs for creating reports and visualizations
## Advanced Usage
### Creating Visualizations
The CSV log file (`ping_data.csv`) can be imported into tools like Excel or PowerBI to create visualizations of network performance over time.
### Scheduled Monitoring
To run the monitor as a scheduled task:
1. Create a `.bat` file with:
```batch
powershell -ExecutionPolicy Bypass -File "C:\path\to\NetworkMonitor.ps1"
```
2. Set up a scheduled task to run this batch file
## Troubleshooting
Common issues:
1. **Permission errors**: Run PowerShell as Administrator
2. **No responses**: Check firewall settings that might block ICMP traffic
3. **Script errors**: Check the `errors.log` file for detailed error information
## License
This script is provided as-is with no warranty. Use at your own risk.
## Acknowledgments
- Inspired by the need for a simple yet effective network monitoring solution
- PowerShell community for various examples and best practices