Menggunakan ekstensi Application Health dengan set skala komputer virtual
Memantau kesehatan aplikasi Anda adalah sinyal penting untuk mengelola dan meningkatkan penyebaran Anda. Set skala komputer virtual Azure menyediakan dukungan untuk peningkatan bergulir termasuk peningkatan gambar OS otomatis, yang bergantung pada pemantauan kesehatan dari masing-masing instans untuk meningkatkan penyebaran Anda. Anda juga dapat menggunakan ekstensi kesehatan untuk memantau kesehatan aplikasi setiap instans dalam set skala Anda dan melakukan perbaikan instans menggunakan perbaikan instans otomatis.
Artikel ini menjelaskan cara Anda dapat menggunakan ekstensi Application Health untuk memantau kesehatan aplikasi yang disebarkan di set skala komputer virtual.
Prasyarat
Artikel ini mengasumsikan bahwa Anda tidak asing dengan:
Kapan harus menggunakan ekstensi Application Health
Ekstensi Application Health disebarkan ke dalam instans set skala komputer virtual dan memberi laporan tentang kesehatan VM dari dalam instans set skala. Anda dapat mengonfigurasi ekstensi untuk menyelidiki titik akhir aplikasi dan memperbarui status aplikasi pada instans tersebut. Status instans ini diperiksa oleh Azure untuk menentukan apakah instans memenuhi syarat untuk operasi peningkatan.
Karena ekstensi melaporkan kesehatan dari dalam VM, ekstensi dapat digunakan dalam situasi di mana pemeriksaan eksternal seperti Pemeriksaan Kesehatan Aplikasi (yang menggunakan pemeriksaan Azure Load Balancer kustom) tidak dapat digunakan.
Skema ekstensi
JSON berikut menunjukkan skema untuk ekstensi Health Application. Ekstensi memerlukan minimum permintaan "tcp", "http" atau "https" dengan port terkait atau jalur permintaan masing-masing.
{
"type": "extensions",
"name": "HealthExtension",
"apiVersion": "2018-10-01",
"location": "<location>",
"properties": {
"publisher": "Microsoft.ManagedServices",
"type": "<ApplicationHealthLinux or ApplicationHealthWindows>",
"autoUpgradeMinorVersion": true,
"typeHandlerVersion": "1.0",
"settings": {
"protocol": "<protocol>",
"port": "<port>",
"requestPath": "</requestPath>",
"intervalInSeconds": "5.0",
"numberOfProbes": "1.0"
}
}
}
Nilai properti
| Nama | Nilai / Contoh | Jenis Data |
|---|---|---|
| apiVersion | 2018-10-01 |
tanggal |
| penerbit | Microsoft.ManagedServices |
string |
| jenis | ApplicationHealthLinux (Linux), ApplicationHealthWindows (Windows) |
string |
| typeHandlerVersion | 1.0 |
int |
Pengaturan
| Nama | Nilai / Contoh | Jenis Data |
|---|---|---|
| protokol | http atau https atau tcp |
string |
| port | Opsional jika protokol adalah http atau https, wajib jika protokol adalah tcp |
int |
| requestPath | Wajib jika protokol adalah http atau https, tidak diizinkan jika protokol adalah tcp |
string |
Menyebarkan ekstensi Application Health
Ada beberapa cara untuk menyebarkan ekstensi Application Health ke set skala Anda seperti yang dijelaskan dalam contoh di bawah.
REST API
Contoh berikut menambahkan ekstensi Application Health (dengan nama myHealthExtension) ke extensionProfile dengan model set skala dari set skala berbasis Windows.
PUT on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/extensions/myHealthExtension?api-version=2018-10-01`
{
"name": "myHealthExtension",
"properties": {
"publisher": "Microsoft.ManagedServices",
"type": "ApplicationHealthWindows",
"autoUpgradeMinorVersion": true,
"typeHandlerVersion": "1.0",
"settings": {
"protocol": "<protocol>",
"port": "<port>",
"requestPath": "</requestPath>"
}
}
}
Gunakan PATCH untuk mengedit ekstensi yang sudah disebarkan.
Azure PowerShell
Gunakan cmdlet Add-AzVmssExtension untuk menambahkan ekstensi Application Health ke definisi model set skala.
Contoh berikut menambahkan ekstensi Application Health ke extensionProfile dalam model set skala dari set skala berbasis Windows. Contoh menggunakan modul Az PowerShell baru.
# Define the scale set variables
$vmScaleSetName = "myVMScaleSet"
$vmScaleSetResourceGroup = "myVMScaleSetResourceGroup"
# Define the Application Health extension properties
$publicConfig = @{"protocol" = "http"; "port" = 80; "requestPath" = "/healthEndpoint"};
$extensionName = "myHealthExtension"
$extensionType = "ApplicationHealthWindows"
$publisher = "Microsoft.ManagedServices"
# Get the scale set object
$vmScaleSet = Get-AzVmss `
-ResourceGroupName $vmScaleSetResourceGroup `
-VMScaleSetName $vmScaleSetName
# Add the Application Health extension to the scale set model
Add-AzVmssExtension -VirtualMachineScaleSet $vmScaleSet `
-Name $extensionName `
-Publisher $publisher `
-Setting $publicConfig `
-Type $extensionType `
-TypeHandlerVersion "1.0" `
-AutoUpgradeMinorVersion $True
# Update the scale set
Update-AzVmss -ResourceGroupName $vmScaleSetResourceGroup `
-Name $vmScaleSetName `
-VirtualMachineScaleSet $vmScaleSet
Azure CLI 2.0
Gunakan az vmss extension set untuk menambahkan ekstensi Application Health ke definisi model set skala.
Contoh berikut menambahkan ekstensi Application Health ke model set skala dari set skala berbasis Linux.
az vmss extension set \
--name ApplicationHealthLinux \
--publisher Microsoft.ManagedServices \
--version 1.0 \
--resource-group <myVMScaleSetResourceGroup> \
--vmss-name <myVMScaleSet> \
--settings ./extension.json
Konten file extension.json.
{
"protocol": "<protocol>",
"port": "<port>",
"requestPath": "</requestPath>"
}
Pecahkan masalah
Output eksekusi ekstensi dicatat di log ke file yang ditemukan dalam direktori berikut:
C:\WindowsAzure\Logs\Plugins\Microsoft.ManagedServices.ApplicationHealthWindows\<version>\
/var/lib/waagent/Microsoft.ManagedServices.ApplicationHealthLinux-<extension_version>/status
/var/log/azure/applicationhealth-extension
Log juga menangkap status kesehatan aplikasi secara berkala.
Langkah berikutnya
Pelajari cara menyebarkan aplikasi Anda di set skala komputer virtual.