Diagnosztika engedélyezése az Azure Cloud Services (klasszikus) szolgáltatásban a PowerShell használatával
Fontos
Cloud Services (klasszikus) mostantól elavult az új ügyfelek számára, és 2024. augusztus 31-én megszűnik minden ügyfél számára. Az új üzemelő példányoknak az új Azure Resource Manager-alapú Azure Cloud Services (kiterjesztett támogatás) üzemi modellt kell használniuk.
Diagnosztikai adatokat, például alkalmazásnaplókat, teljesítményszámlálókat stb. gyűjthet. Azure Diagnostics bővítménnyel. Ez a cikk azt ismerteti, hogyan engedélyezheti a Azure Diagnostics bővítményt egy Felhőszolgáltatáshoz a PowerShell használatával. A cikk előfeltételeihez tekintse meg a Azure PowerShell telepítését és konfigurálását ismertető cikket.
A diagnosztikai bővítmény engedélyezése egy felhőszolgáltatás telepítésének részeként
Ez a megközelítés a folyamatos integrációs forgatókönyvek esetében alkalmazható, ahol a diagnosztikai bővítmény a felhőszolgáltatás üzembe helyezésének részeként engedélyezhető. Új Cloud Service-telepítés létrehozásakor a diagnosztikai bővítmény engedélyezéséhez adja meg az ExtensionConfiguration paramétert a New-AzureDeployment parancsmagnak. Az ExtensionConfiguration paraméter a New-AzureServiceDiagnosticsExtensionConfig parancsmaggal létrehozható diagnosztikai konfigurációk tömbje.
Az alábbi példa bemutatja, hogyan engedélyezheti a diagnosztikát egy felhőszolgáltatáshoz egy WebRole és WorkerRole használatával, amelyek mindegyike eltérő diagnosztikai konfigurációval rendelkezik.
$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)
Ha a diagnosztikai konfigurációs fájl egy StorageAccount
tárfióknévvel rendelkező elemet határoz meg, akkor a parancsmag automatikusan ezt a New-AzureServiceDiagnosticsExtensionConfig
tárfiókot fogja használni. Ahhoz, hogy ez működjön, a tárfióknak ugyanabban az előfizetésben kell lennie, mint az üzembe helyezett felhőszolgáltatásnak.
Az Azure SDK 2.6-tól kezdve az MSBuild közzétételi célkimenet által létrehozott bővítménykonfigurációs fájlok tartalmazzák a tárfiók nevét a szolgáltatáskonfigurációs fájlban (.cscfg) megadott diagnosztikai konfigurációs sztring alapján. Az alábbi szkript bemutatja, hogyan elemezheti a bővítmény konfigurációs fájljait a közzétételi célkimenetből, és hogyan konfigurálhatja a diagnosztikai bővítményeket az egyes szerepkörökhöz a felhőszolgáltatás üzembe helyezésekor.
$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
A Visual Studio Online hasonló megközelítést alkalmaz a Cloud Services automatikus üzembe helyezéséhez a diagnosztikai bővítménnyel. A teljes példáért lásd :Publish-AzureCloudDeployment.ps1 .
Ha nem StorageAccount
lett megadva a diagnosztikai konfigurációban, akkor meg kell adnia a StorageAccountName paramétert a parancsmagnak. Ha a StorageAccountName paraméter meg van adva, akkor a parancsmag mindig a paraméterben megadott tárfiókot fogja használni, nem pedig a diagnosztikai konfigurációs fájlban megadottat.
Ha a diagnosztikai tárfiók a felhőszolgáltatástól eltérő előfizetésben található, akkor explicit módon meg kell adnia a StorageAccountName és a StorageAccountKey paramétereket a parancsmagnak. A StorageAccountKey paraméterre nincs szükség, ha a diagnosztikai tárfiók ugyanabban az előfizetésben van, mivel a parancsmag automatikusan lekérdezheti és beállíthatja a kulcs értékét a diagnosztikai bővítmény engedélyezésekor. Ha azonban a diagnosztikai tárfiók egy másik előfizetésben van, akkor előfordulhat, hogy a parancsmag nem tudja automatikusan lekérni a kulcsot, és explicit módon meg kell adnia a kulcsot a StorageAccountKey paraméterrel.
$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
A diagnosztikai bővítmény engedélyezése egy meglévő felhőszolgáltatáson
A Set-AzureServiceDiagnosticsExtension parancsmaggal engedélyezheti vagy frissítheti a diagnosztikai konfigurációt egy már futó felhőszolgáltatáson.
Figyelmeztetés
Ha egy meglévő szerepkörhöz engedélyezi a diagnosztikát, a már beállított bővítmények le lesznek tiltva a csomag telepítésekor. Ezek a következők:
- A Microsoft Monitoring Agent diagnosztikái
- Microsoft Azure Security Monitoring
- Microsoft Antimalware
- Microsoft Monitoring Agent
- Microsoft Service Profiler Agent
- Windows Azure-tartománybővítmény
- Windows Azure Diagnostics bővítmény
- Windows Azure Távoli asztali bővítmény
- Windows Azure Log Collector
A bővítményeket alaphelyzetbe állíthatja a Azure Portal vagy a PowerShell használatával a frissített szerepkör üzembe helyezése után.
$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
Az aktuális diagnosztikai bővítmény konfigurációjának lekérése
A Get-AzureServiceDiagnosticsExtension parancsmaggal lekérheti egy felhőszolgáltatás aktuális diagnosztikai konfigurációját.
Get-AzureServiceDiagnosticsExtension -ServiceName "MyService"
A diagnosztikai bővítmény eltávolítása
Egy felhőszolgáltatás diagnosztikájának kikapcsolásához használja a Remove-AzureServiceDiagnosticsExtension parancsmagot.
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService"
Ha a Diagnosztikai bővítményt a Set-AzureServiceDiagnosticsExtension vagy a New-AzureServiceDiagnosticsExtensionConfig paranccsal engedélyezte a Szerepkör paraméter nélkül, akkor a Remove-AzureServiceDiagnosticsExtension paranccsal eltávolíthatja a bővítményt a Szerepkör paraméter nélkül. Ha a Szerepkör paramétert a bővítmény engedélyezésekor használták, akkor azt is használni kell a bővítmény eltávolításakor.
A diagnosztika bővítmény egyes szerepkörökből való eltávolítása:
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService" -Role "WebRole"
Következő lépések
- További útmutatás az Azure-diagnosztika és más technikák használatával a problémák elhárításához: Diagnosztika engedélyezése az Azure Cloud Services és Virtual Machines.
- A Diagnosztikai konfigurációs séma a diagnosztikai bővítmény különböző XML-konfigurációs lehetőségeit ismerteti.
- A Virtual Machines diagnosztikai bővítményének engedélyezésével kapcsolatban lásd: Windows rendszerű virtuális gép létrehozása monitorozással és diagnosztikával az Azure Resource Manager Template használatával