1
votes

Enable diagnostic by Azure REST API:

I'm using the Azure REST API to enable diagnostic. Below is the request that I send to Azure.

Method: PUT

HEADERS:

Authorization:Bearer {Access_token}

Content-Type:application/json

Request URI:

https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VMName}/extensions/IaaSDiagnostics?api-version=2016-04-30-preview

Request Body:

const reqBody = {
            "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-8cxxxxxxxxxx/resourceGroups/param/providers/Microsoft.Compute/virtualMachines/parwin/extensions/IaaSDiagnostics",
            "name": "IaaSDiagnostics",
            "type": "Microsoft.Compute/virtualMachines/extensions",
            "location": "eastus",
            "properties": {
                "publisher": "Microsoft.Azure.Diagnostics",
                "type": "IaaSDiagnostics",
                "typeHandlerVersion": "1.5",
                "autoUpgradeMinorVersion": true,
                "settings": {
                    "StorageAccount": "paramstorage10",
                    "WadCfg": base64.encode('<?xml version="1.0" encoding="utf-8"?><PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"><WadCfg><DiagnosticMonitorConfiguration overallQuotaInMB="5120"><PerformanceCounters scheduledTransferPeriod="PT1M"><PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT1M" unit="percent"><annotation displayName="Processor - total processor time" locale="en-us"/></PerformanceCounterConfiguration></PerformanceCounters><WindowsEventLog scheduledTransferPeriod="PT1M"><DataSource name="System!*"/></WindowsEventLog><Metrics resourceId="/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-8cxxxxxxxxxx/resourceGroups/param/providers/Microsoft.Compute/virtualMachines/parwin"><MetricAggregation scheduledTransferPeriod="PT1H"/><MetricAggregation scheduledTransferPeriod="PT1M"/></Metrics></DiagnosticMonitorConfiguration></WadCfg></PublicConfig>')
                }
            }
        };

Response:

{
  "name": "IaaSDiagnostics",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-8cxxxxxxxxxx/resourceGroups/param/providers/Microsoft.Compute/virtualMachines/parwin/extensions/IaaSDiagnostics",
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "location": "eastus",
  "properties": {
    "autoUpgradeMinorVersion": true,
    "provisioningState": "Creating",
    "publisher": "Microsoft.Azure.Diagnostics",
    "type": "IaaSDiagnostics",
    "typeHandlerVersion": "1.5",
    "settings": {
      "StorageAccount": "paramstorage10",
      "WadCfg": "GFDHasdsdfnkmsdfknsdifdskfsdkisf87s8443nkj4ejfgdf487843503603 vkngsfkkfgkjsfnvkjfdsnisfgsnfsgjksfigfsgnskfdgjsfgksfngsfgkslskakfdabvdbd674435bq4jZmM5Y2UyOTUtYjdmYS00MGZiLTgzNTMtOGM2M2RjNTI0NjRjL3Jlc291cmNlR3JvdXBzL3BhcmFtMDgxMi9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3BhcndpbiI+PE1ldHJpY0FnZ3JlZ2F0aW9uIHNjaGVkdWxlZFRyYW5zZmVyUGVyaW9kPSJQVDFIIi8+PE1ldHJpY0FnZ3JlZ2F0aW9uIHNjaGVkdWxlZFRyYW5zZmVyUGVyaW9kPSJQVDFNIi8+PC9NZXRyaWNzPjwvRGlhZ25vc3RpY01vbml0b3JDb25maWd1cmF0aW9uPjwvV2FkQ2ZnPjdskfjgsdfgksfgk849349f=="
    }
  }
}

AZURE UI:

enter image description here

enter image description here

Issue:

After Request, I'm getting the successful response but When I'm going to Azure then the Diagnostics extension don't have successfully installed.

So how do I successfully install the diagnostics setting extension ??

1
Please connect to your VM and check the file in `C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>`. It is a log file. You can get detailed error message.Jim Xu
Hello Jim, Thank you for your response. I'm providing error log at below:Param
[12/16/2020 05:44:56.85] Executing: C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.18.0.4\DiagnosticsPluginLauncher.exe [12/16/2020 05:45:01.08] Execution Complete. ###### Execution Output: Execution Error: Could not extract thumbprint from JSON config file Failed to read configuration. ###### Number of Tries: 1Command C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.18.0.4\DiagnosticsPluginLauncher.exe of Microsoft.Azure.Diagnostics.IaaSDiagnostics has exited with Exit code: -3Param
Can you please help, where I'm doing mistake in my JSON data..Param

1 Answers

1
votes

Now Windows Azure Diagnostics extension configuration accepts the JSON formate. So we can define the configuration as JSON Object. Regrading how to define it, please refer to here and here

For example

URL

 https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/IaaSDiagnostics?api-version=2020-06-01

Body

{
    "location": "",
    "settings": {
        "StorageAccount": "<storage account name>",
        "WadCfg": {
            "DiagnosticMonitorConfiguration": {
                "overallQuotaInMB": 5120,
                "Metrics": {
                    "resourceId": "<the resource id of your vm>",
                    "MetricAggregation": [{
                            "scheduledTransferPeriod": "PT1H"
                        }, {
                            "scheduledTransferPeriod": "PT1M"
                        }
                    ]
                },
                "DiagnosticInfrastructureLogs": {
                    "scheduledTransferLogLevelFilter": "Error"
                },
                "PerformanceCounters": {
                    "scheduledTransferPeriod": "PT1M",
                    "PerformanceCounterConfiguration": [{
                            "counterSpecifier": "\\Processor Information(_Total)\\% Processor Time",
                            "unit": "Percent",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Processor Information(_Total)\\% Privileged Time",
                            "unit": "Percent",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Processor Information(_Total)\\% User Time",
                            "unit": "Percent",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Processor Information(_Total)\\Processor Frequency",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\System\\Processes",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Process(_Total)\\Thread Count",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Process(_Total)\\Handle Count",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\System\\System Up Time",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\System\\Context Switches/sec",
                            "unit": "CountPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\System\\Processor Queue Length",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Memory\\% Committed Bytes In Use",
                            "unit": "Percent",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Memory\\Available Bytes",
                            "unit": "Bytes",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Memory\\Committed Bytes",
                            "unit": "Bytes",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Memory\\Cache Bytes",
                            "unit": "Bytes",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Memory\\Pool Paged Bytes",
                            "unit": "Bytes",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Memory\\Pool Nonpaged Bytes",
                            "unit": "Bytes",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Memory\\Pages/sec",
                            "unit": "CountPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Memory\\Page Faults/sec",
                            "unit": "CountPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Process(_Total)\\Working Set",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Process(_Total)\\Working Set - Private",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\% Disk Time",
                            "unit": "Percent",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\% Disk Read Time",
                            "unit": "Percent",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\% Disk Write Time",
                            "unit": "Percent",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\% Idle Time",
                            "unit": "Percent",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Bytes/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Read Bytes/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Write Bytes/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Transfers/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Reads/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Writes/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk sec/Transfer",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk sec/Read",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk sec/Write",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk Queue Length",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk Read Queue Length",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk Write Queue Length",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\% Free Space",
                            "unit": "Percent",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\LogicalDisk(_Total)\\Free Megabytes",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Network Interface(*)\\Bytes Total/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Network Interface(*)\\Bytes Sent/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Network Interface(*)\\Bytes Received/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Network Interface(*)\\Packets/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Network Interface(*)\\Packets Sent/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Network Interface(*)\\Packets Received/sec",
                            "unit": "BytesPerSecond",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Network Interface(*)\\Packets Outbound Errors",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }, {
                            "counterSpecifier": "\\Network Interface(*)\\Packets Received Errors",
                            "unit": "Count",
                            "sampleRate": "PT60S"
                        }
                    ]
                },
                "WindowsEventLog": {
                    "scheduledTransferPeriod": "PT1M",
                    "DataSource": [{
                            "name": "Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
                        }, {
                            "name": "Security!*[System[band(Keywords,4503599627370496)]]"
                        }, {
                            "name": "System!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
                        }
                    ]
                }
            }
        }
    },
    "protectedSettings": {
        "storageAccountName": "<storage account name>",
        "storageAccountKey": "<storage account key>",
        "storageAccountEndPoint": "https://core.windows.net/"
    }
}

enter image description here enter image description here