Mengirim metrik OS tamu ke penyimpanan metrik Azure Monitor dengan menggunakan templat Azure Resource Manager untuk set skala komputer virtual Windows

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Dengan menggunakan ekstensi Azure Monitor Azure Diagnostics untuk Windows (WAD), Anda dapat mengumpulkan metrik dan log dari sistem operasi tamu (OS tamu) yang berjalan sebagai bagian dari komputer virtual, layanan cloud, atau kluster Azure Service Fabric. Ekstensi dapat mengirim telemetri ke berbagai lokasi yang tercantum dalam artikel yang ditautkan sebelumnya.

Artikel ini menjelaskan proses untuk mengirim metrik performa OS tamu untuk skala komputer virtual Windows yang diatur ke penyimpanan data Azure Monitor. Dimulai dengan Microsoft Azure Diagnostics versi 1.11, Anda dapat menulis metrik langsung ke penyimpanan metrik Azure Monitor, tempat metrik platform standar sudah dikumpulkan. Dengan menyimpannya di lokasi ini, Anda dapat mengakses tindakan yang sama yang tersedia untuk metrik platform. Tindakan termasuk peringatan hampir real-time, pembuatan bagan, perutean, akses dari REST API, dan masih banyak lagi. Di masa lalu, ekstensi Microsoft Azure Diagnostics menulis ke Azure Storage tetapi bukan penyimpanan data Azure Monitor.

Jika Anda baru menggunakan templat Azure Resource Manager, pelajari tentang penyebaran templat serta struktur dan sintaksnya.

Prasyarat

Menyiapkan Azure Monitor sebagai sink data

Ekstensi Azure Diagnostic menggunakan fitur yang disebut sink data untuk merutekan metrik dan log ke lokasi yang berbeda. Langkah-langkah berikut menunjukkan cara menggunakan templat Azure Resource Manager dan PowerShell untuk menyebarkan VM dengan menggunakan sink data Azure Monitor yang baru.

Membuat templat Resource Manager

Untuk contoh ini, Anda dapat menggunakan templat sampel yang tersedia secara umum:

  • Azuredeploy.json adalah templat Azure Resource Manager yang telah dikonfigurasikan sebelumnya untuk penyebaran set skala komputer virtual.

  • Azuredeploy.parameters.json adalah file parameter yang menyimpan informasi seperti nama pengguna dan kata sandi yang ingin Anda tetapkan untuk VM. Selama penyebaran, templat Resource Manager menggunakan parameter yang ditetapkan dalam file ini.

Unduh dan simpan kedua file secara lokal.

Mengubah azuredeploy.parameters.json

Buka file azuredeploy.parameters.json:

  • Sediakan vmSKU yang ingin Anda terapkan. Kami merekomendasikan Standard_D2_v3.
  • Tentukan windowsOSVersion yang Anda inginkan untuk kumpulan skala komputer virtual Anda. Kami merekomendasikan 2016-Datacenter.
  • Beri nama sumber daya set skala komputer virtual yang akan digunakan dengan menggunakan properti vmssName. Contohnya adalah VMSS-WAD-TEST.
  • Tentukan jumlah VM yang ingin Anda jalankan pada skala komputer virtual yang ditetapkan dengan menggunakan properti instanceCount.
  • Masukkan nilai untuk adminUsername dan adminPassword untuk set skala komputer virtual. Parameter tersebut digunakan untuk akses jarak jauh ke VM dalam kumpulan skala. Untuk menghindari VM Anda dibajak, jangan gunakan nilai dalam templat ini. Bot memindai internet untuk nama pengguna dan kata sandi di repositori GitHub publik. Mereka mungkin akan menguji VM dengan default ini.

Ubah azuredeploy.json

Buka file azuredeploy.json.

Tambahkan variabel untuk menyimpan informasi akun penyimpanan di templat Resource Manager. Setiap log atau penghitung performa yang ditentukan dalam file konfigurasi diagnostik ditulis ke penyimpanan metrik Azure Monitor dan akun penyimpanan yang Anda tentukan di sini:

"variables": {
  //add this line
  "storageAccountName": "[concat('storage', uniqueString(resourceGroup().id))]",
  ...
}

Temukan definisi kumpulan skala komputer virtual di bagian sumber daya dan tambahkan bagian identitas ke konfigurasi. Penambahan ini memastikan bahwa Azure menetapkan identitas sistem. Langkah ini juga memastikan bahwa VM dalam kumpulan skala dapat memancarkan metrik tamu mengenai diri mereka sendiri ke Azure Monitor:

{ 
  "type": "Microsoft.Compute/virtualMachineScaleSets", 
  "name": "[variables('namingInfix')]", 
  "location": "[resourceGroup().location]", 
  "apiVersion": "2017-03-30", 
  //add these lines below
  "identity": { 
       "type": "systemAssigned" 
   }, 
   //end of lines to add
   ...
}

Dalam sumber daya set skala komputer virtual, temukan bagian virtualMachineProfile. Tambahkan profil baru yang disebut extensionsProfile untuk mengelola ekstensi.

Di dalam extensionProfile, tambahkan ekstensi baru ke templat seperti yang ditunjukkan di bagian VMSS-WAD-extension. Bagian ini adalah identitas yang terkelola untuk ekstensi sumber daya Azure yang memastikan metrik yang dipancarkan diterima oleh Azure Monitor. Bidang nama bisa memuat nama apa pun.

Kode berikut dari ekstensi MSI juga menambahkan ekstensi dan konfigurasi diagnostik sebagai sumber daya ekstensi ke sumber daya set skala komputer virtual. Jangan ragu untuk menambahkan atau menghapus penghitung performa sesuai kebutuhan:

  "extensionProfile": {
    "extensions": [
      // BEGINNING of added code
      // Managed identities for Azure resources
      {
        "name": "VMSS-WAD-extension",
        "properties": {
          "publisher": "Microsoft.ManagedIdentity",
          "type": "ManagedIdentityExtensionForWindows",
          "typeHandlerVersion": "1.0",
          "autoUpgradeMinorVersion": true,
          "settings": {
            "port": 50342
          },
          "protectedSettings": {}
        }
      },
      // add diagnostic extension. (Remove this comment after pasting.)
      { 
        "name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]", 
        "properties": { 
          "type": "IaaSDiagnostics",
          "autoUpgradeMinorVersion": true,
          "protectedSettings": {
            "storageAccountName": "[variables('storageAccountName')]",
            "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')),'2015-05-01-preview').key1]",
            "storageAccountEndPoint": "https://core.windows.net/"
          },
          "publisher": "Microsoft.Azure.Diagnostics", 
          "settings": { 
            "WadCfg": { 
              "DiagnosticMonitorConfiguration": { 
                "overallQuotaInMB": "50000", 
                "PerformanceCounters": { 
                  "scheduledTransferPeriod": "PT1M", 
                  "sinks": "AzMonSink", 
                  "PerformanceCounterConfiguration": [
                    { 
                      "counterSpecifier": "\\Memory\\% Committed Bytes In Use", 
                      "sampleRate": "PT15S" 
                    },
                    { 
                      "counterSpecifier": "\\Memory\\Available Bytes", 
                      "sampleRate": "PT15S" 
                    }, 
                    { 
                      "counterSpecifier": "\\Memory\\Committed Bytes", 
                      "sampleRate": "PT15S" 
                    }
                  ]
                },
                "EtwProviders": {
                  "EtwEventSourceProviderConfiguration": [
                    { 
                      "provider": "Microsoft-ServiceFabric-Actors", 
                      "scheduledTransferKeywordFilter": "1", 
                      "scheduledTransferPeriod": "PT5M", 
                      "DefaultEvents": { 
                        "eventDestination": "ServiceFabricReliableActorEventTable" 
                      } 
                    }, 
                    { 
                      "provider": "Microsoft-ServiceFabric-Services", 
                      "scheduledTransferPeriod": "PT5M", 
                      "DefaultEvents": { 
                        "eventDestination": "ServiceFabricReliableServiceEventTable" 
                      } 
                    } 
                  ], 
                  "EtwManifestProviderConfiguration": [
                    {
                       "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8", 
                       "scheduledTransferLogLevelFilter": "Information", 
                       "scheduledTransferKeywordFilter": "4611686018427387904", 
                       "scheduledTransferPeriod": "PT5M", 
                       "DefaultEvents": { 
                         "eventDestination": "ServiceFabricSystemEventTable" 
                       } 
                    } 
                  ]
                }
              },
              "SinksConfig": { 
                 "Sink": [ 
                    { 
                    "name": "AzMonSink", 
                    "AzureMonitor": {} 
                    } 
                 ]
              }
            },
            "StorageAccount": "[variables('storageAccountName')]" 
          },
          "typeHandlerVersion": "1.11" 
        }
      }
    ]
  },
  // end of added code. Be sure that the number and type of brackets match properly when done. 
  {
  "type": "Microsoft.Insights/autoscaleSettings",
  ...
  }

Tambahkan dependsOn untuk akun penyimpanan guna memastikan akun tersebut dibuat dalam urutan yang benar:

"dependsOn": [
  "[concat('Microsoft.Network/loadBalancers/', variables('loadBalancerName'))]",
  "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]",
  //add this line below
  "[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]"
]

Buat akun penyimpanan jika akun belum dibuat di dalam templat:

"resources": [
  // add this code
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageAccountName')]",
    "apiVersion": "2015-05-01-preview",
    "location": "[resourceGroup().location]",
    "properties": {
      "accountType": "Standard_LRS"
    }
  },
  // end added code
  {
    "type": "Microsoft.Network/virtualNetworks",
    "name": "[variables('virtualNetworkName')]",
    ...
  }
]

Simpan dan tutup kedua file tersebut.

Sebarkan templat Azure Resource Manager

Catatan

Anda harus menjalankan ekstensi Azure Diagnostic versi 1.5 atau yang lebih tinggi dan memiliki properti autoUpgradeMinorVersion: diatur ke true dalam templat Resource Manager Anda. Azure kemudian memuat ekstensi yang tepat saat memulai VM. Jika Anda tidak memiliki pengaturan ini di templat, ubah dan sebarkan ulang templat tersebut.

Untuk menyebarkan templat Manajer Sumber Daya, gunakan Azure PowerShell:

  1. Luncurkan PowerShell.

  2. Masuk ke Azure menggunakan Login-AzAccount.

  3. Dapatkan daftar langganan Anda dengan menggunakan Get-AzSubscription.

  4. Atur langganan yang akan Anda buat, atau perbarui komputer virtual:

    Select-AzSubscription -SubscriptionName "<Name of the subscription>"
    
  5. Buat grup sumber daya baru untuk VM yang sedang disebarkan. Jalankan perintah berikut:

     New-AzResourceGroup -Name "VMSSWADtestGrp" -Location "<Azure Region>"
    
  6. Jalankan perintah berikut untuk menyebarkan VM:

    Catatan

    Jika Anda ingin memperbarui kumpulan skala yang ada, tambahkan -Mode Incremental ke akhir perintah.

    New-AzResourceGroupDeployment -Name "VMSSWADTest" -ResourceGroupName "VMSSWADtestGrp" -TemplateFile "<File path of your azuredeploy.JSON file>" -TemplateParameterFile "<File path of your azuredeploy.parameters.JSON file>"
    
  7. Setelah penyebaran berhasil, Anda harus menemukan set skala komputer virtual yang diatur di portal Microsoft Azure. Hal itu harus memancarkan metrik ke Azure Monitor.

    Catatan

    Anda mungkin mengalami kesalahan di sekitar vmSkuSize yang dipilih. Jika hal ini terjadi, kembali ke file azuredeploy.json Anda dan perbarui nilai default dari parameter vmSkuSize. Kami sarankan Anda mencoba Standard_DS1_v2.

Buat bagan metrik Anda

  1. Masuk ke portal Azure.

  2. Di sebelah kiri menu, pilih Monitor.

  3. Pada halaman Monitor, pilih Metrics.

    A screenshot showing the metrics menu item on the Azure Monitor menu page.

  4. Ubah periode agregasi menjadi 30 menit terakhir.

  5. Di menu drop-down sumber daya, pilih set skala komputer virtual yang Anda buat.

  6. Di menu drop-down namespace layanan, pilih Tamu Komputer Virtual.

  7. Di menu dropsown metrik, pilih Memory%Committed Bytes in Use.

    A screenshot showing the selection of namespace metric and aggregation for a metrics chart.

Anda kemudian juga dapat memilih untuk menggunakan dimensi pada metrik ini guna membuat bagan untuk VM tertentu atau untuk memplot setiap VM dalam set skala.

Langkah berikutnya