Povolení diagnostiky v Azure Cloud Services (Classic) pomocí PowerShellu
Důležité
Cloud Services (classic) je teď pro nové zákazníky zastaralý a bude vyřazen 31. srpna 2024 pro všechny zákazníky. Nová nasazení by měla používat nový model nasazení Azure Resource Manager založený na Azure Cloud Services (rozšířená podpora).
Můžete shromažďovat diagnostická data, jako jsou protokoly aplikací, čítače výkonu atd. z cloudové služby pomocí rozšíření Azure Diagnostics. Tento článek popisuje, jak povolit rozšíření Azure Diagnostics pro cloudovou službu pomocí PowerShellu. Požadavky potřebné pro tento článek najdete v tématu Instalace a konfigurace Azure PowerShell.
Povolit rozšíření diagnostiky jako součást nasazení cloudové služby
Tento přístup se vztahuje na scénáře typu kontinuální integrace, kde je možné povolit rozšíření diagnostiky v rámci nasazení cloudové služby. Při vytváření nového nasazení cloudové služby můžete povolit rozšíření diagnostiky předáním parametru ExtensionConfigurationrutině New-AzureDeployment . Parametr ExtensionConfiguration přebírá pole konfigurací diagnostiky, které je možné vytvořit pomocí rutiny New-AzureServiceDiagnosticsExtensionConfig .
Následující příklad ukazuje, jak můžete povolit diagnostiku pro cloudovou službu s webrole a rolí pracovního procesu, přičemž každá z nich má jinou konfiguraci diagnostiky.
$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)
Pokud konfigurační soubor diagnostiky určuje StorageAccount
prvek s názvem účtu úložiště, rutina New-AzureServiceDiagnosticsExtensionConfig
tento účet úložiště automaticky použije. Aby to fungovalo, účet úložiště musí být ve stejném předplatném jako nasazované cloudové služby.
Od verze Azure SDK 2.6 budou konfigurační soubory rozšíření vygenerované výstupem cíle publikování MSBuild obsahovat název účtu úložiště na základě konfiguračního řetězce diagnostiky zadaného v konfiguračním souboru služby (.cscfg). Následující skript ukazuje, jak analyzovat konfigurační soubory rozšíření z výstupu cíle publikování a nakonfigurovat rozšíření diagnostiky pro každou roli při nasazování cloudové služby.
$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 Online používá podobný přístup k automatizovaným nasazením Cloud Services s rozšířením diagnostiky. Úplný příklad najdete v Publish-AzureCloudDeployment.ps1 .
StorageAccount
Pokud v konfiguraci diagnostiky nebyla zadána hodnota , musíte do rutiny předat parametr StorageAccountName. Pokud je zadaný parametr StorageAccountName , rutina vždy použije účet úložiště, který je zadaný v parametru, a ne ten, který je zadaný v konfiguračním souboru diagnostiky.
Pokud je účet úložiště diagnostiky v jiném předplatném než cloudová služba, musíte rutině explicitně předat parametry StorageAccountName a StorageAccountKey . Pokud je účet úložiště diagnostiky ve stejném předplatném, není parametr StorageAccountKey potřeba, protože rutina může při povolování rozšíření diagnostiky automaticky dotazovat a nastavit hodnotu klíče. Pokud je ale účet úložiště diagnostiky v jiném předplatném, nemusí být rutina schopná získat klíč automaticky a vy ho budete muset explicitně zadat prostřednictvím parametru 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
Povolit rozšíření diagnostiky na existující službu Cloud
Pomocí rutiny Set-AzureServiceDiagnosticsExtension můžete povolit nebo aktualizovat konfiguraci diagnostiky v cloudové službě, která je už spuštěná.
Upozornění
Když povolíte diagnostiku pro existující roli, všechna rozšíření, která jste už nastavili, se při nasazení balíčku deaktivují. Tady jsou některé z nich:
- Diagnostika agenta Microsoft Monitoring Agent
- Microsoft Azure Security Monitoring
- Antimalware od Microsoftu
- Microsoft Monitoring Agent
- Microsoft Service Profiler Agent
- Rozšíření domény Windows Azure
- Rozšíření Windows Azure Diagnostics
- Rozšíření Windows Azure Remote Desktop
- Kolektor protokolů Windows Azure
Po nasazení aktualizované role můžete rozšíření resetovat prostřednictvím Azure Portal nebo PowerShellu.
$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
Získejte aktuální konfiguraci rozšíření diagnostiky
K získání aktuální konfigurace diagnostiky pro cloudovou službu použijte rutinu Get-AzureServiceDiagnosticsExtension .
Get-AzureServiceDiagnosticsExtension -ServiceName "MyService"
Odeberte rozšíření diagnostiky
Pokud chcete vypnout diagnostiku cloudové služby, můžete použít rutinu Remove-AzureServiceDiagnosticsExtension .
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService"
Pokud jste diagnostické rozšíření povolili pomocí rutiny Set-AzureServiceDiagnosticsExtension nebo New-AzureServiceDiagnosticsExtensionConfig bez parametru Role , můžete rozšíření odebrat pomocí rutiny Remove-AzureServiceDiagnosticsExtension bez parametru Role . Pokud se při povolování rozšíření použil parametr Role , musí se použít také při odebírání rozšíření.
Chcete-li odebrat rozšíření diagnostiky pro každou jednotlivou roli:
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService" -Role "WebRole"
Další kroky
- Další pokyny k použití diagnostiky Azure a dalších technik k řešení problémů najdete v tématu Povolení diagnostiky v Azure Cloud Services a Virtual Machines.
- Schéma konfigurace diagnostiky vysvětluje různé možnosti konfigurace XML pro rozšíření diagnostiky.
- Informace o tom, jak povolit diagnostické rozšíření pro Virtual Machines, najdete v tématu Vytvoření virtuálního počítače s Windows s monitorováním a diagnostikou pomocí šablony Azure Resource Manager.