Skip to content

πŸ”„ SCOM to Azure Monitor Migration Tool - Analyze SCOM Management Packs and generate ARM templates, KQL queries, and migration recommendations

License

Notifications You must be signed in to change notification settings

osalzberg/scom-migrator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

90 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”„ SCOM to Azure Monitor Migration Tool

Azure Static Web Apps Python 3.10+ License: MIT GitHub Discussions

A comprehensive web-based tool for migrating System Center Operations Manager (SCOM) Management Packs to Azure Monitor. Upload your SCOM MP XML files and get instant analysis, migration recommendations, and deployable ARM templates.

🌐 Try It Now

Launch the Web Tool β†’

No installation required - just upload your Management Pack XML and get results instantly.


πŸ’¬ Community & Feedback

We'd love to hear from you! This is a community-driven project.


✨ Features

Feature Description
πŸ“Š Instant Analysis Upload SCOM MP XML files and get migration readiness scores
🎯 Smart Recommendations Intelligent mapping of SCOM components to Azure Monitor equivalents
πŸ“‹ ARM Templates Auto-generate deployable Azure Resource Manager templates
πŸ” KQL Queries Generate Log Analytics queries for your monitoring scenarios
πŸ“₯ Multiple Exports Download ARM templates, DCR templates, or CSV reports
πŸ”’ Secure Files processed in Azure Functions, no data stored

πŸš€ Quick Start

Web Interface (Recommended)

  1. Go to https://icy-wave-02c4e6b03.2.azurestaticapps.net
  2. Drag & drop your SCOM Management Pack XML file
  3. Review the migration analysis and recommendations
  4. Download ARM templates and deploy to Azure

CLI (For Automation)

# Install
pip install -e .

# Analyze a Management Pack
scom-migrator analyze your-management-pack.xml --format markdown

# Generate ARM templates
scom-migrator generate your-management-pack.xml --output-dir ./migration

πŸ“Š What Gets Migrated

SCOM Component Azure Monitor Equivalent
Unit Monitors Log Analytics Scheduled Query Alerts
Performance Rules Data Collection Rules (DCR) + Perf counters
Event Rules DCR + Windows Event collection
Service Monitors Event ID 7036 alerts (Service Control Manager)
Script Monitors Azure Functions / Automation Runbooks
Discoveries Azure Resource Graph / VM Insights

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   SCOM MP XML   β”‚ ──▢ β”‚  Parser/Mapper  β”‚ ──▢ β”‚  ARM Templates  β”‚
β”‚   (Upload)      β”‚     β”‚  (Analysis)     β”‚     β”‚  (Download)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
                               β–Ό
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚ Recommendations β”‚
                        β”‚ + KQL Queries   β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tech Stack:

  • Frontend: HTML5, Bootstrap 5, Vanilla JavaScript
  • Backend: Python 3.10+, Flask, Azure Functions
  • Hosting: Azure Static Web Apps
  • Security: defusedxml (XXE protection), XSS escaping

πŸ“¦ Deployment to Azure

After downloading the ARM templates:

Azure Portal

  1. Go to Azure Portal β†’ Deploy a custom template
  2. Click "Build your own template in the editor"
  3. Paste the downloaded ARM template
  4. Fill in parameters and deploy

Azure CLI

az deployment group create \
  --resource-group YourResourceGroup \
  --template-file azuredeploy.json \
  --parameters workspaceName=your-workspace actionGroupEmail=alerts@company.com

PowerShell

New-AzResourceGroupDeployment `
  -ResourceGroupName "YourResourceGroup" `
  -TemplateFile "azuredeploy.json" `
  -workspaceName "your-workspace"

πŸ› οΈ Local Development

# Clone the repo
git clone https://github.com/osalzberg/scom-migrator.git
cd scom-migrator

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install dependencies
pip install -e ".[dev]"

# Run the web server locally
python run_web.py

πŸ“ Project Structure

scom-migrator/
β”œβ”€β”€ frontend/           # Web UI (HTML/JS/CSS)
β”‚   β”œβ”€β”€ index.html     # Main migration tool
β”‚   └── portfolio.html # Project showcase
β”œβ”€β”€ api/               # Azure Functions API
β”‚   └── scom_migrator/ # Core Python package
β”œβ”€β”€ src/               # CLI version
└── samples/           # Sample MP files for testing

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ”— Related Projects


πŸ‘€ Author

Oren Salzberg


Built with ❀️ for the Azure & SCOM community

About

πŸ”„ SCOM to Azure Monitor Migration Tool - Analyze SCOM Management Packs and generate ARM templates, KQL queries, and migration recommendations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published