Mengaktifkan diagnostik di Azure Cloud Services (klasik) menggunakan PowerShell
Penting
Cloud Services (klasik) sekarang tidak lagi digunakan untuk pelanggan baru dan akan dihentikan untuk semua pelanggan pada 31 Agustus 2024. Penyebaran baru sebaiknya menggunakan Azure Resource Manager yang baru berdasarkan model penyebaran Azure Cloud Services (dukungan tambahan).
Anda dapat mengumpulkan data diagnostik seperti log aplikasi, penghitung kinerja, dll. dari Cloud Servoce menggunakan ekstensi Diagnostik Azure. Artikel ini menjelaskan cara mengaktifkan ekstensi Diagnostik Azure untuk Cloud Service menggunakan PowerShell. Lihat Cara menginstal dan mengonfigurasi Azure PowerShell untuk prasyarat yang diperlukan untuk artikel ini.
Mengaktifkan ekstensi diagnostik sebagai bagian dari penyebaran Cloud Service
Pendekatan ini berlaku untuk jenis skenario integrasi berkelanjutan, di mana ekstensi diagnostik dapat diaktifkan sebagai bagian dari penerapan layanan awan. Saat membuat penyebaran Cloud Service baru, Anda dapat mengaktifkan ekstensi diagnostik dengan meneruskan parameter ExtensionConfiguration ke cmdlet New-AzureDeployment. Parameter ExtensionConfiguration mengambil berbagai konfigurasi diagnostik yang dapat dibuat menggunakan cmdlet New-AzureServiceDiagnosticsExtensionConfig.
Contoh berikut menunjukkan bagaimana Anda dapat mengaktifkan diagnostik untuk layanan awan dengan WebRole dan WorkerRole, masing-masing memiliki konfigurasi diagnostik yang berbeda.
$service_name = "MyService"
$service_package = "CloudService.cspkg"
$service_config = "ServiceConfiguration.Cloud.cscfg"
$webrole_diagconfigpath = "MyService.WebRole.PubConfig.xml"
$workerrole_diagconfigpath = "MyService.WorkerRole.PubConfig.xml"
$webrole_diagconfig = New-AzureServiceDiagnosticsExtensionConfig -Role "WebRole" -DiagnosticsConfigurationPath $webrole_diagconfigpath
$workerrole_diagconfig = New-AzureServiceDiagnosticsExtensionConfig -Role "WorkerRole" -DiagnosticsConfigurationPath $workerrole_diagconfigpath
New-AzureDeployment -ServiceName $service_name -Slot Production -Package $service_package -Configuration $service_config -ExtensionConfiguration @($webrole_diagconfig,$workerrole_diagconfig)
Jika file konfigurasi diagnostik menentukan StorageAccount
elemen dengan nama akun penyimpanan, cmdlet secara otomatis menggunakan akun penyimpanan tersebut New-AzureServiceDiagnosticsExtensionConfig
. Agar konfigurasi ini berfungsi, akun penyimpanan harus berada dalam langganan yang sama dengan Cloud Service yang disebarkan.
Dari Azure SDK 2.6 dan seterusnya, file konfigurasi ekstensi yang dihasilkan oleh output target penerbitan MSBuild menyertakan nama akun penyimpanan berdasarkan string konfigurasi diagnostik yang ditentukan dalam file konfigurasi layanan (.cscfg). Skrip berikut menunjukkan kepada Anda cara mengurai file konfigurasi Ekstensi dari output target penerbitan dan mengonfigurasi ekstensi diagnostik untuk setiap peran saat menyebarkan layanan cloud.
$service_name = "MyService"
$service_package = "C:\build\output\CloudService.cspkg"
$service_config = "C:\build\output\ServiceConfiguration.Cloud.cscfg"
#Find the Extensions path based on service configuration file
$extensionsSearchPath = Join-Path -Path (Split-Path -Parent $service_config) -ChildPath "Extensions"
$diagnosticsExtensions = Get-ChildItem -Path $extensionsSearchPath -Filter "PaaSDiagnostics.*.PubConfig.xml"
$diagnosticsConfigurations = @()
foreach ($extPath in $diagnosticsExtensions)
{
#Find the RoleName based on file naming convention PaaSDiagnostics.<RoleName>.PubConfig.xml
$roleName = ""
$roles = $extPath -split ".",0,"simplematch"
if ($roles -is [system.array] -and $roles.Length -gt 1)
{
$roleName = $roles[1]
$x = 2
while ($x -le $roles.Length)
{
if ($roles[$x] -ne "PubConfig")
{
$roleName = $roleName + "." + $roles[$x]
}
else
{
break
}
$x++
}
$fullExtPath = Join-Path -path $extensionsSearchPath -ChildPath $extPath
$diagnosticsconfig = New-AzureServiceDiagnosticsExtensionConfig -Role $roleName -DiagnosticsConfigurationPath $fullExtPath
$diagnosticsConfigurations += $diagnosticsconfig
}
}
New-AzureDeployment -ServiceName $service_name -Slot Production -Package $service_package -Configuration $service_config -ExtensionConfiguration $diagnosticsConfigurations
Visual Studio Codespace menggunakan pendekatan serupa untuk penyebaran Cloud Services otomatis dengan ekstensi diagnostik. Lihat Publish-AzureCloudDeployment.ps1 untuk contoh lengkap.
Jikatidak ada StorageAccount
yang ditentukan dalam konfigurasi diagnostik, maka Anda harus meneruskan parameter StorageAccountName ke cmdlet. Jika Anda menentukan parameter StorageAccountName , cmdlet menggunakan akun penyimpanan yang ditentukan dalam parameter dan bukan yang ditentukan dalam file konfigurasi diagnostik.
Jika akun penyimpanan diagnostik berada dalam langganan yang berbeda dari Cloud Service, maka Anda harus secara eksplisit meneruskan parameter StorageAccountName dan StorageAccountKey ke cmdlet. Parameter StorageAccountKey tidak diperlukan saat akun penyimpanan diagnostik berada dalam langganan yang sama, karena cmdlet dapat secara otomatis mengkueri dan mengatur nilai kunci saat mengaktifkan ekstensi diagnostik. Namun, jika akun penyimpanan diagnostik berada dalam langganan yang berbeda, maka cmdlet mungkin tidak dapat mendapatkan kunci secara otomatis dan Anda perlu secara eksplisit menentukan kunci melalui parameter StorageAccountKey.
$webrole_diagconfig = New-AzureServiceDiagnosticsExtensionConfig -Role "WebRole" -DiagnosticsConfigurationPath $webrole_diagconfigpath -StorageAccountName $diagnosticsstorage_name -StorageAccountKey $diagnosticsstorage_key
$workerrole_diagconfig = New-AzureServiceDiagnosticsExtensionConfig -Role "WorkerRole" -DiagnosticsConfigurationPath $workerrole_diagconfigpath -StorageAccountName $diagnosticsstorage_name -StorageAccountKey $diagnosticsstorage_key
Mengaktifkan ekstensi diagnostik pada Cloud Service yang ada
Anda dapat menggunakan cmdlet Set-AzureServiceDiagnosticsExtension untuk mengaktifkan atau memperbarui konfigurasi diagnostik pada Cloud Servoce yang sudah berjalan.
Peringatan
Saat Anda mengaktifkan diagnostik untuk peran yang ada, ekstensi apa pun yang telah Anda tetapkan dinonaktifkan saat paket disebarkan. Ini termasuk:
- Diagnostik Microsoft Monitoring Agent (MMA)
- Pemantauan Microsoft Azure Security
- Microsoft Antimalware
- Microsoft Monitoring Agent (MMA)
- Agen Profiler Layanan Microsoft
- Ekstensi Domain Windows Azure
- Ekstensi Windows Azure Diagnostics
- Ekstensi Desktop Jarak Jauh Windows Azure
- Pengumpul Log Windows Azure
Anda dapat mengatur ulang ekstensi melalui portal Microsoft Azure atau PowerShell setelah menyebarkan peran yang diperbarui.
$service_name = "MyService"
$webrole_diagconfigpath = "MyService.WebRole.PubConfig.xml"
$workerrole_diagconfigpath = "MyService.WorkerRole.PubConfig.xml"
$webrole_diagconfig = New-AzureServiceDiagnosticsExtensionConfig -Role "WebRole" -DiagnosticsConfigurationPath $webrole_diagconfigpath
$workerrole_diagconfig = New-AzureServiceDiagnosticsExtensionConfig -Role "WorkerRole" -DiagnosticsConfigurationPath $workerrole_diagconfigpath
Set-AzureServiceDiagnosticsExtension -DiagnosticsConfiguration @($webrole_diagconfig,$workerrole_diagconfig) -ServiceName $service_name
Mendapatkan konfigurasi ekstensi diagnostik saat ini
Gunakan cmdlet Get-AzureServiceDiagnosticsExtension untuk mendapatkan konfigurasi diagnostik saat ini untuk layanan awan.
Get-AzureServiceDiagnosticsExtension -ServiceName "MyService"
Menghapus ekstensi diagnostik
Untuk menonaktifkan diagnostik pada layanan awan, Anda dapat menggunakan cmdlet Remove-AzureServiceDiagnosticsExtension.
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService"
Jika Anda mengaktifkan ekstensi diagnostik menggunakan Set-AzureServiceDiagnosticsExtension atau New-AzureServiceDiagnosticsExtensionConfig tanpa parameter Peran, maka Anda dapat menghapus ekstensi menggunakan Remove-AzureServiceDiagnosticsExtension tanpa parameter Peran. Jika parameter Peran digunakan saat mengaktifkan ekstensi, maka parameter tersebut juga harus digunakan saat menghapus ekstensi.
Untuk menghapus ekstensi diagnostik dari setiap peran individu:
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService" -Role "WebRole"
Langkah berikutnya
- Untuk informasi selengkapnya tentang menggunakan diagnostik Azure dan teknik lain untuk memecahkan masalah, lihat Mengaktifkan Diagnostik di Azure Cloud Services dan Virtual Machines.
- Skema Konfigurasi Diagnostik menjelaskan berbagai opsi konfigurasi xml untuk ekstensi diagnostik.
- Untuk mempelajari cara mengaktifkan ekstensi diagnostik untuk Virtual Machines, lihat Membuat komputer Windows Virtual dengan pemantauan dan diagnostik menggunakan Templat Azure Resource Manager