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