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.