Intelligent SNMP data collection system for telecom devices with automatic discovery and reverse engineering
Project description
SNMP Manager - Telecom Multivendor Data Collection System
A robust, intelligent SNMP data collection system capable of handling multivendor telecom devices (OLT/ONU, BSC/RNC, etc.) with automatic discovery, reverse engineering capabilities, and uniform data output.
Features
- Intelligent Device Discovery - Automatically discover and profile SNMP devices
- Adaptive Adapter System - Self-learning adapters that evolve with each device
- Reverse Engineering - Handle undocumented devices through pattern recognition
- Uniform Data Output - Standardized JSON/XML/YAML output for all devices
- High Performance - Parallel collection and intelligent caching
- Crowdsourced Knowledge - Community-driven device profile database
- Pattern Recognition - ML-like device classification with confidence scoring
- Self-Learning - Gets smarter with every device interaction
- Robust Fallback Strategies - Multiple collection methods with graceful degradation
Quick Start
from snmp_manager import SNMPManager
# Discover devices on network
async with SNMPManager() as manager:
devices = await manager.discover_devices("192.168.1.0/24")
# Collect data from all devices
for device in devices:
data = await device.collect()
print(f"Device {device.host}: {len(data)} fields collected")
Use Case Example
# Enhanced device with full intelligence features
from snmp_manager.core.enhanced_device import EnhancedDevice
async def main():
# Create enhanced device (no manual configuration needed!)
device = EnhancedDevice(host="192.168.1.10")
# Intelligent discovery (reverse engineers unknown devices!)
discovery = await device.intelligent_discover()
print(f"Discovered {discovery['total_duration_ms']:.1f}ms")
# Smart data collection with fallback strategies
data = await device.collect_with_intelligence()
print(f"Collected {len(data)} fields")
# Get device insights
insights = await device.get_intelligent_insights()
print(f"Device classification: {insights['device_info']['signature']}")
asyncio.run(main())
Supported Devices
Telecom Equipment
- OLT/ONU: Huawei (MA5800, MA5600), ZTE (ZXA10), V-SOL (V1600, V2800), Fiberhome (AN5500)
- Cellular: BSC, RNC, SMSC, BTS, mobile network equipment
- GPON/EPON: All major OLT and ONU/ONT devices
- Network Switches: Cisco, Juniper, Huawei, ZTE, Mikrotik
- Routers: Enterprise and carrier-grade routers
Vendor Support
- Documented: Huawei, ZTE, Cisco, Juniper, Mikrotik
- Undocumented: V-SOL, C-Data, Fiberhome (via reverse engineering)
- Unknown: Any SNMP device (pattern recognition + learning)
Installation
# From PyPI
pip install snmp-manager
# With optional ML features
pip install snmp-manager[ml]
# With development tools
pip install snmp-manager[dev]
# From source
git clone https://github.com/mexyusef/snmp-manager.git
cd snmp-manager
pip install -e .
Documentation
- Examples - Usage examples and demos
Development
# Clone repository
git clone https://github.com/mexyusef/snmp-manager.git
cd snmp-manager
# Install development dependencies
pip install -e ".[dev]"
# Run tests
python -m pytest tests/
# Build documentation
mkdocs build
Contributing
Contributions are welcome! Please see our Contributing Guide for details.
License
Copyright © 2025 Yusef Ulum
This project is licensed under the MIT License - see the LICENSE file for details.
Links
- GitHub Repository: https://github.com/mexyusef/snmp-manager
- PyPI Package: https://pypi.org/project/snmp-manager/
- Documentation: https://snmp-manager.readthedocs.io/
- Bug Reports: https://github.com/mexyusef/snmp-manager/issues
- Discussions: https://github.com/mexyusef/snmp-manager/discussions
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snmpbox-0.1.0.tar.gz.
File metadata
- Download URL: snmpbox-0.1.0.tar.gz
- Upload date:
- Size: 125.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c665c3b0e792cafc0bbeec911d56ea23df4ce051a488d43df77e7d6462e7d136
|
|
| MD5 |
a5e6ab7509a1de73c97ac75284d2d3ae
|
|
| BLAKE2b-256 |
ce60f985ae59becbd6da7589f0a9051b1a75a84839ad3d041cd5d5bd07a779a8
|
File details
Details for the file snmpbox-0.1.0-py3-none-any.whl.
File metadata
- Download URL: snmpbox-0.1.0-py3-none-any.whl
- Upload date:
- Size: 104.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5027004068f5d7a53189c560a2feabe00475889800a67c59bf299cc79abb8111
|
|
| MD5 |
80eb6ac813b0a7aa3798f26e08a95b71
|
|
| BLAKE2b-256 |
1fd22992bd2be9d7d504063777c591c10b96f96d13c4ac482a8319fd5df4d1ab
|