A cloud infrastructure monitoring solution that collects Virtual Machine statistics from multiple cloud providers (AWS, Azure, Google Cloud) and publishes them to OpenNMS for analysis and long-term storage.
OpenNMS Cloud Bridge enables seamless integration between cloud infrastructure and OpenNMS monitoring. It automatically discovers virtual machines across cloud providers, collects performance metrics, and forwards them to OpenNMS while handling location-based routing to avoid IP address conflicts.
- Multi-Cloud Support: AWS, Azure, and Google Cloud Platform
- Secure Credential Management: Encrypted storage of cloud and OpenNMS credentials
- Automatic VM Discovery: Discovers and catalogs virtual machines across providers
- Location-Aware Routing: Handles IP conflicts using OpenNMS locations
- Real-time Metrics Collection: CPU, memory, and network statistics
- Error Recovery: Intelligent error handling with user-friendly reporting
- Web-based Configuration: Easy-to-use interface for setup and management
- Background Processing: Runs continuously without UI interaction
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Cloud APIs │ │ Cloud Bridge │ │ OpenNMS │
│ │ │ │ │ │
│ ┌───┐ ┌───┐ │ │ ┌───────────┐ │ │ ┌───────────┐ │
│ │AWS│ │GCP│ │◄───┤ │ Collector │ │────►│ │ Nodes │ │
│ └───┘ └───┘ │ │ └───────────┘ │ │ └───────────┘ │
│ ┌───┐ │ │ ┌───────────┐ │ │ ┌───────────┐ │
│ │AZ │ │ │ │ Config │ │ │ │ Locations │ │
│ └───┘ │ │ └───────────┘ │ │ └───────────┘ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- Python 3.8+ or Node.js 16+
- Access to cloud provider accounts (AWS, Azure, GCP)
- OpenNMS instance with REST API access
- SQLite (included) or PostgreSQL (optional)
# Clone the repository
git clone https://github.com/joseanes/onmscloudbridge.git
cd onmscloudbridge
# Install dependencies
pip install -r requirements.txt
# Run initial setup
python setup.py
# Start the application
python main.py- Access the web interface: http://localhost:8080
- Add cloud providers: Configure credentials and regions
- Configure OpenNMS: Set endpoint and authentication
- Discover VMs: Scan for virtual machines
- Enable monitoring: Select VMs to monitor
- Start collection: Begin automatic metric collection
- IAM user with
CloudWatchReadOnlyAccessandAmazonEC2ReadOnlyAccesspermissions - Access Key ID and Secret Access Key
- Service Principal with Reader role
- Tenant ID, Client ID, and Client Secret
- Service Account with Compute Viewer and Monitoring Viewer roles
- JSON key file
- OpenNMS base URL (e.g., http://opennms.example.com:8980/opennms)
- Username and password with administrative privileges
- REST API enabled
onmscloudbridge/
├── backend/ # Core application logic
├── frontend/ # Web configuration interface
├── database/ # Schema and migrations
├── tests/ # Unit and integration tests
├── docs/ # Documentation
└── scripts/ # Utility scripts
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
# Start development server
python -m uvicorn backend.main:app --reloadAPI documentation is available at /docs when the application is running.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- All credentials are encrypted at rest using AES-256
- HTTPS/TLS for all API communications
- No sensitive data in logs or error messages
- Regular security dependency updates
Connection Failures
- Verify cloud provider credentials
- Check network connectivity and firewalls
- Ensure OpenNMS REST API is accessible
Missing Metrics
- Confirm CloudWatch/Azure Monitor permissions
- Check VM instance states
- Verify metric collection intervals
OpenNMS Integration
- Validate OpenNMS credentials
- Ensure locations are properly configured
- Check for IP address conflicts
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions:
- Create an Issue
- Check the Documentation
- Join our Discussions
- Initial MVP implementation
- AWS integration
- OpenNMS basic integration
- Web configuration interface
- Azure support
- Google Cloud support
- Advanced metrics collection
- Alerting and notifications
- High availability deployment
- Kubernetes operator
Project Status: 🚧 Under Development