Azure Arc VMs discovery
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
We have a requirement to discover Azure Arc VMs, but it seems this is not supported out of the box. Has anyone implemented Azure Arc VM discovery?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
Hi @Shreya Jain1 ,
ServiceNow's Cloud Discovery is designed to interact directly with cloud providers like Azure, AWS, and GCP using APIs.
Azure Arc VMs are non-Azure resources that are projected into Azure via the Arc agent.
Since they don’t reside in Azure natively, ServiceNow’s standard Azure Cloud Discovery doesn’t detect them.
Hope its helps !
☑️ Please mark responses as HELPFUL or ACCEPT SOLUTION to assist future users in finding the right solution....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
Azure Arc VMs are virtual machines that are running outside of Azure (on-premises or in other clouds) but are connected to Azure’s control plane through the Azure Arc service.
Think of it as "connecting" those external VMs into Azure so you can manage them as if they were native Azure resources.
To pull into the CMDB you will need to treat as a seperate Discovery source, you'll want to understand where these CI's are hosted and set up a relevant Discovery job for them, bet it via MID Servers or perhaps a Service Graph connector if hosted in AWS.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago - last edited 4 weeks ago
Hi @Shreya Jain1 ,
1. Why Azure Arc VMs Are Not Discovered OOB
* Azure Arc allows you to manage non-Azure machines (on-premises, other clouds) in Azure.
* ServiceNow’s native Azure Cloud Discovery patterns use Azure Resource Manager (ARM) APIs, which do not return all details for Arc machines in the same way as native Azure VMs.
* Result: Arc VMs don’t appear in standard Azure Virtual Machine pattern runs.
Below are custom solution if you want to do:-
2. How to Discover Azure Arc VMs in ServiceNow
You have two main approaches:
A. Extend Azure Cloud Patterns to Include Arc Resources
1. Enable Azure Arc API Permissions:
* Add the Azure Resource Graph API and Microsoft.HybridCompute provider.
* Make sure the Service Principal used in ServiceNow has:
* HybridCompute.Read
* Microsoft.Resources/subscriptions/resourceGroups/read
2. Modify the Azure Virtual Machine Pattern:
* Navigate to Discovery Patterns → search for Azure Virtual Machine.
* Clone the pattern (do not edit OOB).
* Add steps to query:
* Microsoft.HybridCompute/machines
* Using the Azure REST API step in the pattern.
* Map returned Arc machine data to your CMDB classes (cmdb_ci_computer or custom class for Arc VMs).
3. Classify Arc VMs separately:
* You may want to create a CI Class like cmdb_ci_arc_vm so you can differentiate them from native Azure VMs.
B. Hybrid Discovery (Azure Inventory + OS-Level Discovery)
1. Inventory from Azure:
* Use the Azure Resource Graph or HybridCompute API to list all Arc machines and store their metadata in CMDB (hostname, resource group, OS type, location).
2. Discover via MID Server:
* Run normal Windows/Linux patterns (WMI/WinRM or SSH) to get detailed OS/hardware/software data.
* Use IRE to merge the Azure Arc inventory with OS discovery results, keyed on fqdn, name, or serial_number.
3. Benefit: You get full CMDB detail, not just what Azure reports.
3. Implementation Steps in ServiceNow
1. Credentials:
* Azure Application (Service Principal) with necessary API access.
* Windows/Linux credentials for OS-level discovery (for deep data).
2. Patterns to Use:
* Clone Azure Virtual Machine → add Arc-specific REST call.
* Keep standard Windows Server / Linux Server patterns for deeper data.
3. Identification & Reconciliation:
* Update identification rules if using a custom cmdb_ci_arc_vm class.
* Ensure name + serial_number (or fqdn) are consistent between Azure API and OS-level discovery.
Tips from my side-
* Arc machines may not have public IPs — MID Server must have network reach.
* Azure Arc metadata doesn’t include full OS details — rely on OS discovery for that.
* Use Cloud Resource Tags in Azure for easier mapping and ownership tracking in CMDB.
Please appreciate the efforts of community contributors by marking appropriate response as Mark my Answer Helpful or Accept Solution this may help other community users to follow correct solution in future.
Thank You
AJ - TechTrek with AJ - ITOM Trainer
LinkedIn:- https://www.linkedin.com/in/ajay-kumar-66a91385/
YouTube:- https://www.youtube.com/@learnitomwithaj
Topmate:- https://topmate.io/aj_techtrekwithaj (Connect for 1-1 Session)
ServiceNow Community MVP 2025
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
Do you have access and permission on device, If yes then try agentless discovery.