Daniel's Tech Blog

Cloud Computing, Cloud Native & Kubernetes

Microsoft Azure Stack Technical Preview – Integrate the Microsoft Monitoring Agent Extension

A lot of familiar extension are included in the Azure Stack TP like BGInfo, PowerShell DSC, Docker and so on. Looking for the Microsoft Monitoring Agent extension you will find out that this extension is missing. So how do you integrate the extension into Azure Stack?

The process is very easy, but first we need to provision a VM in Azure with the MMA extension to get the installation package. Have a look at my blog post from last year on how to integrate the deployment into your ARM template.

-> https://www.danielstechblog.io/azure-azure-stack-iaas-vm-arm-mma-operational-insights-template-integration/

After you have deployed a VM in Azure, sign in via RDP and navigate to the following path “C:PackagesPluginsMicrosoft.EnterpriseCloud.Monitoring.MicrosoftMonitoringAgent1.0.10375.2”. Depending on the recent extension version, it might be possible that the version differs.


Download the installation package “Microsoft.EnterpriseCloud.Monitoring.MicrosoftMonitoringAgent_1.0.10375.2.zip” and place it on the Azure Stack Hyper-V host in the following path “C:ClusterStorageVolume1ShareCRPGuestArtifactRepository”.


If you have not done it yet, you can now modify your ARM template for the MMA extension deployment on Azure Stack. Add the following lines under the parameters section.

"monitoringAgentWorkspaceID": {
    "type": "string",
    "metadata": {
        "description": "Monitoring Agent Workspace ID extension name"
"monitoringAgentWorkspaceKey": {
    "type": "securestring",
    "metadata": {
        "description": "Monitoring Agent Workspace Key extension name"
"vmExtensionMonitoringAgent": {
    "type": "string",
    "metadata": {
        "description": "Monitoring Agent extension name"

The following lines have to be placed under resources after the VM definition in your template.

    "apiVersion": "2015-06-15",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "name": "[concat(variables('vmName'),'/', parameters('vmExtensionMonitoringAgent'))]",
    "location": "[parameters('location')]",
    "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
    "properties": {
        "publisher": "Microsoft.EnterpriseCloud.Monitoring",
        "type": "MicrosoftMonitoringAgent",
        "typeHandlerVersion": "1.0",
        "settings": {
            "workspaceId": "[parameters('monitoringAgentWorkspaceID')]"
        "protectedSettings": {
            "workspaceKey": "[parameters('monitoringAgentWorkspaceKey')]"

For your template you have to customize the properties name, location and dependsOn. As well you should place your OMS workspace id and workspace key under settings into the parameters workspaceId and workspaceKey. Now you can start the deployment.

If you are deploying the ARM template via PowerShell and verbose logging is enabled, you can monitor the provisioning status of the extension.

VERBOSE: 6:01:21 AM - Create template deployment 'Windows.Server.AzureStackPoC'.
VERBOSE: 6:02:21 AM - Resource Microsoft.Compute/virtualMachines 'ASCRP-01' provisioning status is running
VERBOSE: 6:13:15 AM - Resource Microsoft.Compute/virtualMachines/extensions 'ASCRP-01/MicrosoftMonitoringAgent' provisioning status is running
VERBOSE: 6:18:25 AM - Resource Microsoft.Compute/virtualMachines/extensions 'ASCRP-01/MicrosoftMonitoringAgent' provisioning status is succeeded

After a successful deployment you can check also the extension blade in the portal, if the MMA extension provisioning status succeeded.


Finally connect to your VM via RDP and check the Microsoft Monitoring Agent properties under the Control Panel.


Your Azure Stack VM is successfully connected to your OMS workspace.

WordPress Cookie Notice by Real Cookie Banner