Mengirim metrik OS tamu ke penyimpanan metrik Azure Monitor dengan menggunakan templat ARM untuk VM Windows
Data performa dari OS tamu komputer virtual (VM) Azure tidak dikumpulkan secara otomatis seperti metrik platform lainnya. Instal ekstensi Diagnostik Azure Monitor untuk mengumpulkan metrik OS tamu ke dalam database metrik sehingga dapat digunakan dengan semua fitur Metrik Azure Monitor. Fitur-fitur ini mencakup pemberitahuan, pembuatan bagan, perutean, dan akses hampir real time dari REST API. Artikel ini menjelaskan proses pengiriman metrik performa OS tamu untuk VM Windows ke database metrik dengan menggunakan templat Azure Resource Manager (templat ARM).
Catatan
Untuk detail tentang mengonfigurasi ekstensi diagnostik untuk mengumpulkan metrik OS tamu dengan menggunakan portal Azure, lihat Menginstal dan mengonfigurasi ekstensi Windows Azure Diagnostics (WAD).
Jika Anda baru menggunakan templat ARM, pelajari tentang penyebaran templat serta struktur dan sintaksnya.
Prasyarat
- Langganan harus terdaftar di Microsoft.Insights.
- Anda harus memasang Azure PowerShell atau Azure Cloud Shell.
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 ARM dan PowerShell untuk menyebarkan VM dengan menggunakan sink data Azure Monitor baru.
Templat ARM
Untuk contoh ini, Anda dapat menggunakan templat sampel yang tersedia secara umum. Templat awal ada di GitHub.
- Azuredeploy.json: Templat ARM yang telah dikonfigurasi sebelumnya untuk penyebaran VM.
- Azuredeploy.parameters.json: File parameter yang menyimpan informasi seperti nama pengguna dan kata sandi apa yang ingin Anda tetapkan untuk VM Anda. Selama penyebaran, templat ARM menggunakan parameter yang diatur dalam file ini.
Unduh dan simpan kedua file secara lokal.
Mengubah azuredeploy.parameters.json
Buka file azuredeploy.parameters.json.
Masukkan nilai untuk
adminUsername
danadminPassword
untuk VM. Parameter ini digunakan untuk akses jarak jauh ke VM. 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.Buat yang unik
dnsname
untuk VM.
Ubah azuredeploy.json
Buka file azuredeploy.json.
Tambahkan ID akun penyimpanan ke bagian
variables
templat setelah entri untukstorageAccountName
.// Find these lines. "variables": { "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]", // Add this line directly below. "accountid": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
Tambahkan ekstensi Managed Service Identity (MSI) ini ke templat di bagian atas bagian
resources
. Ekstensi ini memastikan bahwa Azure Monitor menerima metrik yang sedang dipancarkan.//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 } } },
identity
Tambahkan konfigurasi ke sumber daya VM untuk memastikan bahwa Azure menetapkan identitas sistem ke ekstensi MSI. Langkah ini memastikan bahwa VM dapat memancarkan metrik tamu tentang dirinya sendiri ke Azure Monitor.// 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": { ...
Tambahkan konfigurasi berikut untuk mengaktifkan ekstensi diagnostik pada VM Windows. Untuk VM berbasis Resource Manager sederhana, Anda dapat menambahkan konfigurasi ekstensi ke array sumber daya untuk VM. Baris
"sinks": "AzMonSink"
, dan yang sesuai"SinksConfig"
nanti di bagian , aktifkan ekstensi untuk memancarkan metrik langsung ke Azure Monitor. Jangan ragu untuk menambahkan atau menghapus penghitung kinerja sesuai kebutuhan."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
Simpan dan tutup kedua file tersebut.
Menyebarkan templat ARM
Catatan
Anda harus menjalankan ekstensi Azure Diagnostics versi 1.5 atau yang lebih tinggi dan mengatur properti ke autoUpgradeMinorVersion:
true
dalam templat ARM 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 ARM, kami menggunakan Azure PowerShell.
Mulai PowerShell.
Masuk ke Azure dengan menggunakan
Login-AzAccount
.Dapatkan daftar langganan Anda dengan menggunakan
Get-AzSubscription
.Atur langganan yang Anda gunakan untuk membuat/memperbarui VM di:
Select-AzSubscription -SubscriptionName "<Name of the subscription>"
Untuk membuat grup sumber daya baru untuk VM yang sedang disebarkan, jalankan perintah berikut ini:
New-AzResourceGroup -Name "<Name of Resource Group>" -Location "<Azure Region>"
Catatan
Ingatlah untuk menggunakan wilayah Azure yang diaktifkan untuk metrik kustom.
Jalankan perintah berikut untuk menyebarkan VM dengan menggunakan templat ARM.
Catatan
Jika Anda ingin memperbarui VM yang ada, tambahkan -Mode Bertambah Bertahas ke akhir perintah berikut.
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>"
Setelah penyebaran Anda berhasil, VM seharusnya berada di portal Azure, memancarkan metrik ke Azure Monitor.
Catatan
Anda mungkin mengalami kesalahan di sekitar yang dipilih
vmSkuSize
. Jika kesalahan ini terjadi, kembali ke file azuredeploy.json Anda dan perbarui nilaivmSkuSize
default parameter. Dalam hal ini, kami sarankan Anda mencoba"Standard_DS1_v2"
).
Buat bagan metrik Anda
Masuk ke portal Azure.
Di menu sebelah kiri, pilih Pemantauan.
Pada halaman Monitor, pilih Metrics.
Ubah periode agregasi menjadi 30 menit terakhir.
Di menu dropdown sumber daya, pilih VM yang Anda buat. Jika Anda tidak mengubah nama dalam templat, nama harus SimpleWinVM2.
Di daftar dropdown namespace, pilih azure.vm.windows.guestmetrics.
Dalam daftar dropdown metrik, pilih Memori%Byte yang Diterapkan dalam Penggunaan.
Langkah berikutnya
Pelajari selengkapnya tentang metrik kustom.