Prerequisites for the Azure Monitor Health Model¶
Authoritative prerequisites for building an Azure Monitor Health Model (preview) over an Azure Local (formerly Azure Stack HCI) cluster. Every claim below cites a Microsoft Learn page; URLs are pinned to ?view=azloc-2604 where the doc supports versioned views.
Scope. This page covers the Azure-side enablement required for the health model to receive signals about Azure Local infrastructure — the cluster resource, its Arc-enabled machine nodes, the Arc Resource Bridge, and the related platform-side Azure resources (Key Vault, Storage Account, deployment SPN). It does not cover tenant VM workloads running on the cluster — those are the domain of future workload-companion MPs (Roadmap).
Summary¶
| # | Prerequisite | Why it's needed | Blocking / Recommended | Reference |
|---|---|---|---|---|
| 1 | Azure Local cluster registered with Azure Arc (cluster + each node) | Cluster and nodes must be ARM resources before any Azure Monitor feature, Insights, or health model can target them. | Blocking | Assign required permissions for Azure Local deployment |
| 2 | Resource providers registered on subscription: Microsoft.AzureStackHCI, Microsoft.HybridCompute, Microsoft.Insights, Microsoft.Management (service groups), plus the Arc/Edge stack | Without Microsoft.Insights, deployment-time diagnostic account and Key Vault audit logging fails validation; without Microsoft.HybridCompute Arc nodes can't register; without Microsoft.Management service groups can't be created. | Blocking | Azure prerequisites |
| 3 | Log Analytics workspace in the same tenant | Backing store for Insights, custom DCRs, log signals in the health model. | Blocking (for log-based signals) | Monitor a single Azure Local system with Insights |
| 4 | Azure Local Insights enabled on the cluster (portal → cluster → Capabilities → Insights) | Auto-installs AMA on every node, creates the AzureStackHCI-… DCR, enrolls the SDDC and Health event channels and the five required performance counters that everything else builds on. | Blocking (for cluster-health signals) | Insights — Configure |
| 5 | Azure Monitor Agent (AMA) on every node | The Arc/AMA extension is what writes data into the workspace per DCR. Insights installs and manages it. | Blocking | Azure Monitor Agent overview |
| 6 | Telemetry & Diagnostics (DCMA) Arc extension on every node | Source of the >60 platform metrics (CPU, memory, IOPS, latency, throughput, VM perf) shown in AzureStackHCI/clusters Metrics Explorer. Distinct from AMA. | Blocking (for metric signals) | Monitoring capabilities — Metrics |
| 7 | Cluster managed identity ("enhanced management") enabled | Insights "Get Started" button is disabled until cluster identity is on; AMA on each node uses server identity for log collection (mismatch is the #1 cause of empty workbooks). | Blocking | Insights prerequisites |
| 8 | Azure Service Group scoped to the cluster's resources | Health models are built on top of a service group; entities are auto-discovered from members every 5 min. | Blocking | Service Groups overview, Create a health model |
| 9 | RBAC for health-model authoring — Contributor on host RG, Service Group Contributor on the SG, Monitoring Contributor on the model | Required to create / edit / discover. | Blocking | Permissions required |
| 10 | Managed identity for the health model with Service Group Reader + Monitoring Reader on members + Monitoring Reader on LAW + Monitoring Reader on AMW (if AMW topology in use) | Identity the model uses to enumerate the SG and pull telemetry/log data from both workspace types. | Blocking | Permissions required |
| 11 | Outbound 80/443 to required Azure URLs from every node and ARB; no HTTPS inspection; no Arc Private Link Scopes | Without it AMA, DCMA, Arc agent, and ARB cannot push data. | Blocking | Firewall requirements for Azure Local |
| 12 | VM Insights for ARB and management VMs | Adds processes/dependency map and OS-level perf for the management plane VMs. | Recommended | VM Insights overview |
| 13 | Activity Log + Resource Health (auto, no setup) | Free Azure-resource-level signals — useful as health-model signals on the cluster, Key Vault, Storage Account, etc. | Auto / no action | Activity log |
| 14 | Azure Resource Graph access (Reader on the SG/subscription) | The model's discovery and many operator queries (inventory of nodes, extensions, Arc state) rely on ARG. | Blocking for discovery queries | Service Groups / Health Model discovery |
| 15 | Azure Update Manager onboarding for the cluster | Provides update-status signals (assessment age, missing critical updates) you can wire into the health model. | Recommended | Monitoring capabilities |
| 16 | Azure Monitor Workspace (AMW) with a supplementary DCR routing AMA performance counter metrics to monitoringAccounts destination | Preferred target for performance metrics (PromQL, lower cost). Not required — the health model auto-detects topology and falls back to Perf table queries on the LAW when no AMW DCR destination is found. Most current Azure Local deployments are still on the LAW-only (legacy) topology. | Recommended | Azure Monitor Workspace overview, ADR 0012 |
Per-prerequisite detail¶
1. Azure Local Insights (HCI Insights)¶
Insights is a portal-driven feature on the cluster's Capabilities blade. Selecting Get Started triggers the platform to:
- Install the
AzureMonitorWindowsAgentextension on every node via Arc. - Create (or reuse) a Data Collection Rule prefixed
AzureStackHCI-…. - Enable the two required Windows event channels and five required performance counters.
The Get Started button is gated on the cluster managed identity being enabled. (Configure Insights)
Event channels collected (drive the health/inventory workbooks; these are the tables the health model should read for failure signals):
| Channel | Purpose |
|---|---|
Microsoft-Windows-Health/Operational | OS Health Service faults — pool capacity, disk health, network adapter, QoS, etc. (>80 fault types) |
Microsoft-Windows-SDDC-Management/Operational (Event IDs 3000–3004) | Inventory + state of servers, drives, volumes, VMs |
These ingest into the Log Analytics Event table (with the channel in Channel); the workbooks query them via KQL. (Insights — Event channel)
Performance counters collected (land in Perf):
Memory(*)\Available BytesNetwork Interface(*)\Bytes Total/secProcessor(_Total)\% Processor TimeRDMA Activity(*)\RDMA Inbound Bytes/secRDMA Activity(*)\RDMA Outbound Bytes/sec
Feature workbooks (additive signals): ReFS dedup/compression and Dell APEX hardware events extend the DCR with extra event channels and counters — see Monitor Azure Local features with Insights.
Do not replace the Insights DCR
The Insights doc explicitly warns: "We strongly recommend that you don't create your own DCR. The DCR created by Insights includes a special data stream required for its operation." You can edit it to add Windows/Syslog events, but don't replace it. (Enable Insights)
2. VM Insights (for the platform VMs)¶
VM Insights is separate from HCI Insights. It adds:
- Processes & Dependencies (Map view)
- The
InsightsMetricsperf table (per-process CPU/memory/disk/network) - Compatible with Arc-enabled servers and Azure VMs, so it works on the Arc Resource Bridge (ARB) VM and any management/jump VMs that are Arc-onboarded
It piggybacks on AMA + a VM Insights DCR. Recommended (not blocking) for the infrastructure model — it gives the ARB its own health signals (process up/down, latency to dependencies). See VM Insights overview and Enable enhanced monitoring.
3. Agents on the nodes — AMA vs DCMA vs Connected Machine¶
Azure Local cluster nodes register as Azure Arc-enabled servers (Microsoft.HybridCompute/machines) as part of cluster registration. (Arc-enabled servers overview) That means each node is an ARM resource, but the Arc Connected Machine agent does not include AMA by default — AMA is a separate extension installed by Insights.
| Agent | Resource type / extension | Installed by | Data plane | Required for |
|---|---|---|---|---|
Azure Connected Machine agent (azcmagent) | Built-in to Azure Local registration | Cluster registration | Heartbeat, identity, extension dispatch | Arc-enabled status, Resource Health, Activity Log |
Azure Monitor Agent (AzureMonitorWindowsAgent extension) | Arc extension | HCI Insights | Event Logs, Perf, custom log → Log Analytics via DCR | Insights workbooks, log signals |
Telemetry & Diagnostics (DCMA / AzureEdgeTelemetryAndDiagnostics family) | Arc extension, deployed by Azure Local platform | Cluster deployment / lifecycle | >60 platform metrics, diagnostic logs | Cluster Metrics, recommended alerts |
DCMA is what the Monitoring overview calls the Telemetry and Diagnostics Arc extension. Its metric output is what powers the AzureStackHCI/clusters resource type in Azure Monitor Metrics — those metrics are the natural source for metric-based health-model signals.
Pre-November 2023 cluster gotcha
AMA was originally configured to use cluster identity instead of node identity; this breaks Arc-for-Servers, VM Insights, Defender, Sentinel data flow. Run Register-AzStackHCI -RepairRegistration, then reinstall AMA, then reconfigure Insights. (Troubleshoot clusters registered before November 2023)
4. Data Collection Rules (DCRs)¶
| DCR | Created by | Contents | Tables targeted |
|---|---|---|---|
AzureStackHCI-<cluster> | HCI Insights | Health + SDDC channels, 5 perf counters | Event, Perf |
MSVMI-… (VM Insights) | VM Insights enable flow | InsightsMetrics, ServiceMap | InsightsMetrics, VMComputer, VMProcess, VMConnection |
| Custom DCRs (you create) | Operator | Add e.g. System, Application, Hyper-V *-Operational, Microsoft-Windows-FailoverClustering, syslog from ARB/AKS-on-HCI | Event, Syslog, custom logs |
Authoring guidance: Data collection rules in Azure Monitor, Best practices. Custom DCRs target the node (Arc machine) resource ID, not the cluster.
5. Log Analytics Workspace¶
- Required for any log-based signal in the health model.
- One workspace per cluster, or a shared regional workspace — both supported. Shared works well when authoring many health models off one set of tables.
- Recommended in the same Azure region as the cluster's ARM record to minimize cross-region egress and fit data-residency expectations.
- Required endpoints: Define AMA network settings.
6. Resource Health and Activity Log¶
Both stream automatically and at no cost for every Azure resource in the model:
- The cluster (
Microsoft.AzureStackHCI/clusters) - Each node (
Microsoft.HybridCompute/machines) - The Arc Resource Bridge (
Microsoft.ResourceConnector/appliances) - Deployment Key Vault, Storage Account, Custom Locations, ARM extensions
Use these as free signals in the health model:
- Activity Log → "Administrative" / "Service Health" categories — surfaces when someone deletes the workspace, rotates KV, or Microsoft posts a service issue.
- Resource Health → platform-emitted Available/Degraded/Unavailable; ideal as the baseline signal on the cluster and ARB entities.
References: Azure Monitor activity log, Activity logs for VMs.
7. Azure Resource Graph¶
The health-model designer enumerates service-group members through Azure Resource Manager + ARG. To author the model you need at least:
Readeron every subscription that contributes resourcesService Group Readeron the service group
ARG is also the right place for your own inventory KQL that backs custom signals (e.g. count of nodes with properties.status != 'Connected' on Microsoft.HybridCompute/machines).
8. Azure Monitor Health Models (preview)¶
From Health models in Azure Monitor (preview) and Create:
- Built on top of an Azure Service Group — every entity is either the root, an Azure resource entity (auto-discovered from the SG, refreshed every 5 min), or a generic entity you add manually.
- A model is itself an ARM resource (lives in a resource group + region).
- Signals are pulled from already-collected data — the model does not collect anything new. So your DCRs / metrics / Resource Health must already be flowing.
- It can target metrics, log queries (Log Analytics workspace) and Azure Monitor workspace.
- Recommended signals are pre-shipped for common Azure resource types — choose "Add recommended signals" on the Discovery step.
Authoring RBAC (per Permissions required):
| Action | Role |
|---|---|
| Create a health model | Contributor on the host resource group (or subscription, if creating the RG) |
| Manage existing model | Monitoring Contributor on the model |
| View model | Monitoring Reader on the model + Service Group Reader on the SG |
| Add resources | Contributor on the SG (to add SG members) |
Health-model managed identity (system or user-assigned) needs:
Service Group Readeron the SGMonitoring Readeron every member resourceMonitoring Readeron the Log Analytics workspace and Azure Monitor workspace used in signals
9. Azure Service Groups¶
Service Groups (preview) are tenant-level, parallel to the management-group hierarchy. To scope a SG to "all Azure Local resources for cluster X," add as members:
- The cluster ARM resource (
Microsoft.AzureStackHCI/clusters/<name>) - Each node (
Microsoft.HybridCompute/machines/<node>) - The Arc Resource Bridge (
Microsoft.ResourceConnector/appliances/<arb>) - The deployment Key Vault and Storage Account
- The Log Analytics workspace and any Action Groups you want to display in the model
- Optionally each Arc extension resource (DCMA / AMA) — useful for surfacing "extension out of date" as a signal
Limits to plan around: 2,000 SG-member relationships per subscription; up to 10 levels of nesting; no custom RBAC during preview. (Important facts)
10. RBAC and identity prerequisites (cumulative)¶
For the deployment identity (one-time, already required to stand up the cluster):
Azure Stack HCI Administrator+Readeron the subscriptionAzure Connected Machine Onboarding+Azure Connected Machine Resource Administratoron the deployment RGKey Vault Data Access Administrator+Key Vault Secrets Officer+Key Vault Contributoron the RGStorage Account Contributoron the RG
Source: Assign Azure permissions for deployment.
For the health-model author: see §8 above.
For the operator viewing the model: Reader on the cluster + Monitoring Reader on the workspace + Service Group Reader on the SG + Monitoring Reader on the model.
11. Network / firewall¶
From Firewall requirements for Azure Local:
- Outbound TCP 80/443 from each node and the ARB to Azure
- HTTPS inspection MUST be disabled along the path; Entra ID Tenant Restrictions v1 is unsupported on the management network
- Arc Private Link Scopes are NOT supported for Azure Local —
*.his.arc.azure.com,*.guestconfiguration.azure.com,*.dp.kubernetesconfiguration.azure.commust resolve to public IPs from nodes/ARB/proxy. (Other Azure PaaS private endpoints are fine if routed via ExpressRoute / S2S VPN.) - AMA-specific endpoints (DCE, ingestion) are listed at AMA firewall requirements. If you use a proxy or DCE-only configuration, those FQDNs must be in the allowlist.
- Region-specific consolidated endpoint lists are linked from the firewall doc above.
12. Update Manager linkage¶
Azure Update Manager for Azure Local emits assessment and update-run results that surface in the cluster's updates and updateRuns ARM child resources. Useful health-model signals derived from it:
- "Latest update assessment is older than X days."
- "Last
updateRunsended withstate != Succeeded."
These are queryable via Azure Resource Graph and Activity Log without any extra agent.
Common gotchas¶
| Symptom | Root cause | Fix |
|---|---|---|
| "I enabled Insights but workbooks are blank." | DCR association missing on the nodes; AMA still using cluster identity (pre-Nov 2023 reg). | Repair cluster registration, then Repair AMA, then Reconfigure Insights. |
| "Get Started" button is greyed out. | Cluster managed identity not enabled OR cluster on pre-May-2023 22H2. | Enable enhanced management / managed identity; patch to ≥ May 2023 CU. |
| Duplicate ingestion / 2× cost. | MMA + AMA both installed during migration. | Uninstall MicrosoftMonitoringAgent extension after verifying nothing else needs it. |
| Insights tile says Needs update. | A perf counter or event channel was deleted from the DCR, or the DCR itself was edited externally. | Open Insights and click Update. |
| ARB / management VMs absent from the model. | Service group only contains the cluster + nodes; ARB has its own ARM resource type. | Add Microsoft.ResourceConnector/appliances as a service group member. |
| Health-model "Unknown" everywhere. | Model managed identity lacks Monitoring Reader on workspace, or signal queries hit a workspace not in the SG. | Re-check identity assignments per §8. |
Microsoft.Insights RP unregistered. | Validation passes Arc but fails Key Vault audit logging during deployment. | Run Register-AzResourceProvider -ProviderNamespace "Microsoft.Insights" in the subscription. |
| Outbound to Azure works for Arc but Insights data never appears. | HTTPS inspection / TLS break-and-inspect on the egress path, or Arc Private Link Scope misapplied. | Disable HTTPS inspection for the AzureMonitor / AzureResourceManager / GuestAndHybridManagement service tags. |
| Health model can't see a service-group member. | Member relationship was added but caller lacked Microsoft.Relationship/write on the resource at the time. | Re-add the member with appropriate permissions. |
Pre-flight checklist¶
Run through this before pointing the health-model designer at your service group.
Subscription / tenant level¶
- Resource providers registered:
Microsoft.AzureStackHCI,Microsoft.HybridCompute,Microsoft.GuestConfiguration,Microsoft.HybridConnectivity,Microsoft.Kubernetes,Microsoft.KubernetesConfiguration,Microsoft.ExtendedLocation,Microsoft.ResourceConnector,Microsoft.HybridContainerService,Microsoft.Attestation,Microsoft.Storage,Microsoft.Insights,Microsoft.KeyVault,Microsoft.Management(service groups),Microsoft.OperationalInsights. - Tenant Global Administrator has elevated access at least once if you need a Service Group at the tenant root.
Cluster level¶
- Azure Local cluster registered with Arc; all nodes show as
Microsoft.HybridCompute/machinesinConnectedstate. - Cluster on a supported version (≥ Azure Stack HCI 22H2 May 2023 CU, or any Azure Local 23H2 / 2411+ release).
- Cluster managed identity ("enhanced management") enabled.
- If cluster was registered before November 2023: registration repaired and AMA reset.
- Telemetry & Diagnostics (DCMA) extension healthy on every node.
Monitoring data plane¶
- Log Analytics workspace exists in the chosen region.
- HCI Insights enabled — capability tile shows Configured.
- AMA extension reports
Succeededon every node. - DCR
AzureStackHCI-…exists, contains bothMicrosoft-Windows-Health/OperationalandMicrosoft-Windows-SDDC-Management/Operational, and the five required perf counters. - Test KQL:
Event | where Channel == "Microsoft-Windows-Health/Operational" | take 5returns rows. - Test KQL:
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" | take 5returns rows. - (Optional) VM Insights enabled on the Arc Resource Bridge VM.
- (Optional) Update Manager assessment ran successfully against the cluster.
Network¶
- Outbound 80/443 to Azure permitted from every node and the ARB.
- HTTPS inspection disabled along the path.
- No Arc Private Link Scope applied to the Azure Local nodes.
- Region-appropriate endpoint allowlist in place (Azure Local + Arc + ARB + AKS).
Service Group¶
- Service Group created with all relevant members:
- Cluster (
Microsoft.AzureStackHCI/clusters/<name>) - Each node (
Microsoft.HybridCompute/machines/<node>) - Arc Resource Bridge (
Microsoft.ResourceConnector/appliances/<arb>) - Custom Locations (
Microsoft.ExtendedLocation/customLocations/<cl>) - Deployment Key Vault and Storage Account
- Log Analytics workspace
- Action groups used for alerting
- Cluster (
- Author has
Service Group Contributoron the SG.
RBAC for the model¶
- Author has
Contributoron the resource group that will hold the health model. - Health-model managed identity (system or user-assigned) decided.
- Identity has
Service Group Readeron the SG. - Identity has
Monitoring Readeron each SG member resource. - Identity has
Monitoring Readeron the Log Analytics workspace.
Final dry-run¶
- In the portal, open the SG → Monitoring → Create a health model → confirm every expected resource appears in the auto-discovery list.
- Choose Add recommended signals, save, and verify the entities exit
Unknownstate within ~15 minutes. - If still
Unknown, re-check the managed identity's data-plane permissions (Monitoring Reader on workspace) and that signals reference workspaces / metric namespaces actually in scope.
References¶
- What is Azure Local monitoring?
- Monitor Azure Local features with Insights
- Monitor a single Azure Stack HCI cluster with Insights
- Assign required permissions for Azure Local deployment
- Firewall requirements for Azure Local
- Azure Monitor Agent overview
- VM Insights overview
- Health models in Azure Monitor (preview)
- Azure Monitor health model concepts
- Create a new Azure Monitor health model
- What are Azure Service Groups?
- What is Azure Arc-enabled servers?
- Data collection rules in Azure Monitor