A single place to collect, explore, and analyze evidence from distributed test executions.
LogOctopus helps engineers understand why distributed tests fail. It automatically collects logs, metrics, and system data from remote devices over SSH and organizes everything into a single searchable test session, making root-cause analysis faster and easier.
A distributed test fails.
What happens next?
❌ Test failed
↓
SSH into device 1
Collect logs
↓
SSH into device 2
Collect logs
↓
Compare timestamps
↓
Find the root cause
With LogOctopus:
❌ Test failed
↓
LogOctopus already collected:
✅ Device logs
✅ System metrics
✅ Command outputs
✅ Test session data
↓
Open one session and investigate
"What happened during this failed test?"
LogOctopus solves a different problem.
| Capability | LogOctopus | ELK | Grafana | Manual SSH |
|---|---|---|---|---|
| SSH-based collection | ✅ | ❌ | ❌ | ✅ |
| No agent installation required | ✅ | ❌ | ❌ | ✅ |
| Test session grouping | ✅ | ❌ | ❌ | ❌ |
| Multi-device support | ✅ | ✅ | ✅ | |
| Ready to use quickly | ✅ | ❌ | ❌ | |
| Designed for test debugging | ✅ | ❌ |
git clone https://github.com/kkuuba/LogOctopus.git
cd LogOctopus
nano .env
docker compose up -dOpen:
Frontend:
http://localhost:8100
Backend:
http://localhost:8050
Collect data from multiple SSH-accessible devices:
- Linux
- Windows
- Raspberry Pi
- Network devices
- NAS systems
- Custom embedded devices
Supports:
- Direct SSH connections
- Gateway/jump hosts
- Network packet captures
Every collection run creates a session containing:
- Logs
- Metrics
- Device information
- Scenario name
- Timestamps
Example:
reboot-test
├── server-01
│ ├── system logs
│ └── CPU metrics
│
├── router-01
│ └── network logs
│
└── device-01
└── application logs
Text logs
- Unified timeline
- Filtering
- Highlighting
- CSV export
Chart logs
- Interactive charts
- Zoom and pan
- Device comparison
Network capture
- Collect packtes
- Decode packets info
- Custom tshark dissctors
Designed for automated tests:
Start collection
↓
Run test
↓
Stop collection
↓
Open session results
Integrate using REST API with:
- CI/CD pipelines
- Python tests
- Custom automation frameworks
React Frontend
|
REST API
|
Flask Backend
|
SSH
|
------------------------------
| | |
Device A Device B Device C
Components:
- React frontend
- Flask backend
- SSH collection layer
- Local snapshot storage
No external database required.
Devices are configured using JSON files.
Example:
{
"device_name": "Linux Server",
"ip_address": "192.168.1.10",
"port": 22,
"user": "test-user",
"log_file_configs": [
{
"log_name": "system_log",
"log_file_cmd": "journalctl",
"log_type": "text"
}
]
}Example configurations:
docs/example_configs/
Includes:
- Linux
- Windows
- Cisco
- MikroTik
- pfSense
- Proxmox
- Raspberry Pi
- Synology NAS
The API allows:
- Start/stop collection
- Manage devices
- Query snapshots
- Retrieve logs
Example:
curl -X POST http://localhost:8050/api/start-logs-collection \
-H "Content-Type: application/json" \
-d '{"selected_devices":["server-01"],"session_scenario":"test"}'- Historical test comparison
- Trend analysis
- AI-assisted configuration generation
- Improved device monitoring
Pull requests are welcome.
MIT License

