Windows VM için ARM şablonu kullanarak konuk işletim sistemi ölçümlerini Azure İzleyici ölçüm deposuna gönderme

Azure sanal makinelerinin (VM) konuk işletim sisteminden alınan performans verileri, diğer platform ölçümleri gibi otomatik olarak toplanmaz. Azure İzleyici Ölçümlerinin tüm özellikleriyle kullanılabilmesi için konuk işletim sistemi ölçümlerini ölçüm veritabanına toplamak için Azure İzleyici Tanılama uzantısını yükleyin. Bu özellikler arasında gerçek zamanlıya yakın uyarılar, grafik oluşturma, yönlendirme ve REST API'den erişim yer alır. Bu makalede, Azure Resource Manager şablonu (ARM şablonu) kullanarak bir Windows VM için konuk işletim sistemi performans ölçümlerini ölçüm veritabanına gönderme işlemi açıklanmaktadır.

Dekont

Azure portalını kullanarak konuk işletim sistemi ölçümlerini toplamak üzere tanılama uzantısını yapılandırma hakkında ayrıntılı bilgi için bkz. Windows Azure Tanılama (WAD) uzantısını yükleme ve yapılandırma.

ARM şablonlarını yeni kullanıyorsanız şablon dağıtımları ve bunların yapısı ve söz dizimi hakkında bilgi edinin.

Önkoşullar

  • Aboneliğinizin Microsoft.Analizler'a kayıtlı olması gerekir.
  • Azure PowerShell veya Azure Cloud Shell yüklü olmalıdır.

Azure İzleyici'nin veri havuzu olarak ayarlanması

Azure Tanılama uzantısı, ölçümleri ve günlükleri farklı konumlara yönlendirmek için veri havuzları adlı bir özellik kullanır. Aşağıdaki adımlarda, yeni Azure İzleyici veri havuzu kullanılarak vm dağıtmak için ARM şablonu ve PowerShell'in nasıl kullanılacağı gösterilmektedir.

ARM şablonu

Bu örnekte, genel kullanıma açık bir örnek şablonu kullanabilirsiniz. Başlangıç şablonları GitHub'dadır.

  • Azuredeploy.json: VM dağıtımı için önceden yapılandırılmış arm şablonu.
  • Azuredeploy.parameters.json: VM'niz için ayarlamak istediğiniz kullanıcı adı ve parola gibi bilgileri depolayan parametre dosyası. Dağıtım sırasında ARM şablonu bu dosyada ayarlanan parametreleri kullanır.

Her iki dosyayı da yerel olarak indirin ve kaydedin.

azuredeploy.parameters.json dosyasını değiştirme

  1. azuredeploy.parameters.json dosyasını açın.

  2. VM için adminUsername ve adminPassword değerlerini girin. Bu parametreler VM'ye uzaktan erişim için kullanılır. VM'nizin ele geçirilmiş olmasını önlemek için bu şablondaki değerleri kullanmayın. Botlar, genel GitHub depolarındaki kullanıcı adları ve parolalar için İnternet'i tarar. Vm'leri bu varsayılan değerlerle test etme olasılığı yüksektir.

  3. VM için benzersiz dnsname bir oluşturma.

azuredeploy.json dosyasını değiştirme

  1. azuredeploy.json dosyasını açın.

  2. için girdiden storageAccountNamesonra şablonun variables bölümüne bir depolama hesabı kimliği ekleyin.

    // Find these lines.
    "variables": {
        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]",
    
    // Add this line directly below.
        "accountid": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
    
  3. Bu Yönetilen Hizmet Kimliği (MSI) uzantısını bölümün en üstündeki şablona resources ekleyin. Uzantı, Azure İzleyici'nin yayılan ölçümleri kabul etmesini sağlar.

    //Find this code.
    "resources": [
    // Add this code directly below.
        {
            "type": "Microsoft.Compute/virtualMachines/extensions",
            "name": "[concat(variables('vmName'), '/', 'WADExtensionSetup')]",
            "apiVersion": "2017-12-01",
            "location": "[resourceGroup().location]",
            "dependsOn": [
                "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]" ],
            "properties": {
                "publisher": "Microsoft.ManagedIdentity",
                "type": "ManagedIdentityExtensionForWindows",
                "typeHandlerVersion": "1.0",
                "autoUpgradeMinorVersion": true,
                "settings": {
                    "port": 50342
                }
            }
        },
    
  4. Azure'ın identity MSI uzantısına bir sistem kimliği atadığından emin olmak için yapılandırmayı VM kaynağına ekleyin. Bu adım, VM'nin kendisiyle ilgili konuk ölçümlerini Azure İzleyici'ye yaymasını sağlar.

    // Find this section
                    "subnet": {
                "id": "[variables('subnetRef')]"
                }
            }
            }
        ]
        }
    },
    {
        "apiVersion": "2017-03-30",
        "type": "Microsoft.Compute/virtualMachines",
        "name": "[variables('vmName')]",
        "location": "[resourceGroup().location]",
        // add these 3 lines below
        "identity": {
        "type": "SystemAssigned"
        },
        //end of added lines
        "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
        "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
        ],
        "properties": {
        "hardwareProfile": {
        ...
    
  5. Windows VM'sinde tanılama uzantısını etkinleştirmek için aşağıdaki yapılandırmayı ekleyin. Basit bir Resource Manager tabanlı VM için, uzantı yapılandırmasını VM'nin resources dizisine ekleyebilirsiniz. satırı "sinks": "AzMonSink"ve bölümün devamında karşılık gelen "SinksConfig" , uzantının ölçümleri doğrudan Azure İzleyici'ye yaymasını sağlar. Gerektiğinde performans sayaçlarını ekleyebilir veya kaldırabilirsiniz.

            "networkProfile": {
                "networkInterfaces": [
                {
                    "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
                }
                ]
            },
    "diagnosticsProfile": {
        "bootDiagnostics": {
        "enabled": true,
        "storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob]"
        }
    }
    },
    //Start of section to add
    "resources": [
    {
                "type": "Microsoft.Compute/virtualMachines/extensions",
                "name": "[concat(variables('vmName'), '/', 'Microsoft.Insights.VMDiagnosticsSettings')]",
                "apiVersion": "2017-12-01",
                "location": "[resourceGroup().location]",
                "dependsOn": [
                "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
                ],
                "properties": {
                "publisher": "Microsoft.Azure.Diagnostics",
                "type": "IaaSDiagnostics",
                "typeHandlerVersion": "1.12",
                "autoUpgradeMinorVersion": true,
                "settings": {
                    "WadCfg": {
                    "DiagnosticMonitorConfiguration": {
        "overallQuotaInMB": 4096,
        "DiagnosticInfrastructureLogs": {
                        "scheduledTransferLogLevelFilter": "Error"
            },
                        "Directories": {
                        "scheduledTransferPeriod": "PT1M",
        "IISLogs": {
                            "containerName": "wad-iis-logfiles"
                        },
                        "FailedRequestLogs": {
                            "containerName": "wad-failedrequestlogs"
                        }
                        },
                        "PerformanceCounters": {
                        "scheduledTransferPeriod": "PT1M",
                        "sinks": "AzMonSink",
                        "PerformanceCounterConfiguration": [
                            {
                            "counterSpecifier": "\\Memory\\Available Bytes",
                            "sampleRate": "PT15S"
                            },
                            {
                            "counterSpecifier": "\\Memory\\% Committed Bytes In Use",
                            "sampleRate": "PT15S"
                            },
                            {
                            "counterSpecifier": "\\Memory\\Committed Bytes",
                            "sampleRate": "PT15S"
                            }
                        ]
                        },
                        "WindowsEventLog": {
                        "scheduledTransferPeriod": "PT1M",
                        "DataSource": [
                            {
                            "name": "Application!*"
                            }
                        ]
                        },
                        "Logs": {
                        "scheduledTransferPeriod": "PT1M",
                        "scheduledTransferLogLevelFilter": "Error"
                        }
                    },
                    "SinksConfig": {
                        "Sink": [
                        {
                            "name" : "AzMonSink",
                            "AzureMonitor" : {}
                        }
                        ]
                    }
                    },
                    "StorageAccount": "[variables('storageAccountName')]"
                },
                "protectedSettings": {
                    "storageAccountName": "[variables('storageAccountName')]",
                    "storageAccountKey": "[listKeys(variables('accountid'),'2015-06-15').key1]",
                    "storageAccountEndPoint": "https://core.windows.net/"
                }
                }
            }
            ]
    //End of section to add
    
  6. Her iki dosyayı da kaydedin ve kapatın.

ARM şablonunu dağıtma

Dekont

uzantı sürüm 1.5 veya üzeri Azure Tanılama çalıştırıyor olmanız ve özelliğin autoUpgradeMinorVersion: ARM şablonunuzda olarak ayarlanmış true olması gerekir. Ardından Azure, VM'yi başlattığında uygun uzantıyı yükler. Şablonunuzda bu ayarlar yoksa, bunları değiştirin ve şablonu yeniden dağıtın.

ARM şablonunu dağıtmak için Azure PowerShell'i kullanırız.

  1. PowerShell'i başlatın.

  2. kullanarak Login-AzAccountAzure'da oturum açın.

  3. kullanarak Get-AzSubscriptionabonelik listenizi alın.

  4. VM'yi oluşturmak/güncelleştirmek için kullandığınız aboneliği ayarlayın:

    Select-AzSubscription -SubscriptionName "<Name of the subscription>"
    
  5. Dağıtılmakta olan VM için yeni bir kaynak grubu oluşturmak için aşağıdaki komutu çalıştırın:

     New-AzResourceGroup -Name "<Name of Resource Group>" -Location "<Azure Region>"
    

    Dekont

    Özel ölçümler için etkinleştirilmiş bir Azure bölgesi kullanmayı unutmayın.

  6. ARM şablonunu kullanarak VM'yi dağıtmak için aşağıdaki komutları çalıştırın.

    Dekont

    Mevcut bir VM'yi güncelleştirmek istiyorsanız, aşağıdaki komutun sonuna -Mode Incremental ekleyin.

    New-AzResourceGroupDeployment -Name "<NameThisDeployment>" -ResourceGroupName "<Name of the Resource Group>" -TemplateFile "<File path of your Resource Manager template>" -TemplateParameterFile "<File path of your parameters file>"
    
  7. Dağıtımınız başarılı olduktan sonra VM' nin Azure portalında olması ve ölçümleri Azure İzleyici'ye yayması gerekir.

    Dekont

    Seçili vmSkuSizeöğesinin çevresinde hatayla karşılaşabilirsiniz. Bu hata oluşursa azuredeploy.json dosyanıza dönün ve parametrenin varsayılan değerini güncelleştirinvmSkuSize. Bu durumda, denemenizi "Standard_DS1_v2"öneririz).

Ölçümlerinizi grafikleyin

  1. Azure Portal oturum açın.

  2. Soldaki menüden İzleyici'yi seçin.

  3. İzleyici sayfasında Ölçümler'i seçin.

    Screenshot that shows the Metrics page.

  4. Toplama süresini Son 30 dakika olarak değiştirin.

  5. Kaynak açılan menüsünde, oluşturduğunuz VM'yi seçin. Şablondaki adı değiştirmediyseniz SimpleWinVM2 olmalıdır.

  6. Ad alanları açılan listesinde azure.vm.windows.guestmetrics öğesini seçin.

  7. Ölçümler açılan listesinde Bellek%Kullanımda Işlenen Baytlar'ı seçin.

Sonraki adımlar

Özel ölçümler hakkında daha fazla bilgi edinin.