Aracılığıyla paylaş


PowerShell kullanarak Azure Cloud Services(klasik) tanılamayı etkinleştirme

Önemli

Cloud Services (klasik) artık yeni müşteriler için kullanımdan kaldırılmıştır ve tüm müşteriler için 31 Ağustos 2024'te kullanımdan kaldırılacaktır. Yeni dağıtımlarda yeni Azure Resource Manager tabanlı dağıtım modeli Azure Cloud Services (genişletilmiş destek) kullanılmalıdır.

Uygulama günlükleri, performans sayaçları vb. gibi tanılama verilerini toplayabilirsiniz. Azure Tanılama uzantısını kullanarak bir Bulut Hizmetinden. Bu makalede, PowerShell kullanarak bir Bulut Hizmeti için Azure Tanılama uzantısının nasıl etkinleştirileceği açıklanır. Bu makale için gereken önkoşullar için bkz. Azure PowerShell yükleme ve yapılandırma.

Bulut Hizmeti dağıtımının bir parçası olarak tanılama uzantısını etkinleştirme

Bu yaklaşım, tanılama uzantısının bulut hizmetini dağıtmanın bir parçası olarak etkinleştirilebildiği senaryoların sürekli tümleştirme türü için geçerlidir. Yeni bir Bulut Hizmeti dağıtımı oluştururken ExtensionConfiguration parametresini New-AzureDeployment cmdlet'ine geçirerek tanılama uzantısını etkinleştirebilirsiniz. ExtensionConfiguration parametresi, New-AzureServiceDiagnosticsExtensionConfig cmdlet'i kullanılarak oluşturulabilecek bir dizi tanılama yapılandırması alır.

Aşağıdaki örnekte, her biri farklı bir tanılama yapılandırmasına sahip webrole ve WorkerRole ile bir bulut hizmeti için tanılamayı nasıl etkinleştirebileceğiniz gösterilmektedir.

$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)

Tanılama yapılandırma dosyası depolama hesabı adına sahip bir StorageAccount öğe belirtirse, New-AzureServiceDiagnosticsExtensionConfig cmdlet otomatik olarak bu depolama hesabını kullanır. Bunun işe yaraması için depolama hesabının dağıtılan Bulut Hizmeti ile aynı abonelikte olması gerekir.

Azure SDK 2.6'dan başlayarak MSBuild yayımlama hedef çıkışı tarafından oluşturulan uzantı yapılandırma dosyaları, hizmet yapılandırma dosyasında (.cscfg) belirtilen tanılama yapılandırma dizesine göre depolama hesabı adını içerir. Aşağıdaki betikte, yayımlama hedefi çıkışından Uzantı yapılandırma dosyalarını ayrıştırma ve bulut hizmetini dağıtırken her rol için tanılama uzantısını yapılandırma işlemleri gösterilmektedir.

$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, tanılama uzantısıyla Cloud Services otomatik dağıtımları için benzer bir yaklaşım kullanır. Tam bir örnek için bkz. Publish-AzureCloudDeployment.ps1 .

Tanılama yapılandırmasında belirtilmemişse StorageAccount , StorageAccountName parametresini cmdlet'ine geçirmeniz gerekir. StorageAccountName parametresi belirtilirse, cmdlet her zaman tanılama yapılandırma dosyasında belirtilen depolama hesabını değil parametresinde belirtilen depolama hesabını kullanır.

Tanılama depolama hesabı Bulut Hizmeti'nden farklı bir abonelikteyse, StorageAccountName ve StorageAccountKey parametrelerini cmdlet'ine açıkça geçirmeniz gerekir. Tanılama depolama hesabı aynı abonelikte olduğunda StorageAccountKey parametresi gerekli değildir, cmdlet tanılama uzantısını etkinleştirirken anahtar değerini otomatik olarak sorgulayabilir ve ayarlayabilir. Ancak, tanılama depolama hesabı farklı bir abonelikteyse, cmdlet anahtarı otomatik olarak alamayabilir ve anahtarı StorageAccountKey parametresi aracılığıyla açıkça belirtmeniz gerekir.

$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

Mevcut bir Bulut Hizmetinde tanılama uzantısını etkinleştirme

Zaten çalışmakta olan bir Bulut Hizmetinde tanılama yapılandırmasını etkinleştirmek veya güncelleştirmek için Set-AzureServiceDiagnosticsExtension cmdlet'ini kullanabilirsiniz.

Uyarı

Mevcut bir rol için tanılamayı etkinleştirdiğinizde, paket dağıtıldığında önceden ayarlamış olduğunuz tüm uzantılar devre dışı bırakılır. Bu modüller şunlardır:

  • Microsoft Monitoring Agent Tanılama
  • Microsoft Azure Güvenlik İzleme
  • Microsoft Kötü Amaçlı Yazılımdan Korunma
  • Microsoft Monitoring Agent
  • Microsoft Hizmet Profili Oluşturucu Aracısı
  • Windows Azure Etki Alanı Uzantısı
  • Windows Azure Tanılama Uzantısı
  • Windows Azure Uzak Masaüstü Uzantısı
  • Windows Azure Günlük Toplayıcı

Güncelleştirilmiş rolü dağıttığınızda uzantılarınızı Azure portal veya PowerShell aracılığıyla sıfırlayabilirsiniz.

$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

Güncel tanılama uzantı yapılandırmasını alma

Bir bulut hizmeti için geçerli tanılama yapılandırmasını almak için Get-AzureServiceDiagnosticsExtension cmdlet'ini kullanın.

Get-AzureServiceDiagnosticsExtension -ServiceName "MyService"

Tanılama uzantısını kaldırma

Bir bulut hizmetinde tanılamayı kapatmak için Remove-AzureServiceDiagnosticsExtension cmdlet'ini kullanabilirsiniz.

Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService"

Tanılama uzantısını Set-AzureServiceDiagnosticsExtension veya Role parametresi olmadan New-AzureServiceDiagnosticsExtensionConfig kullanarak etkinleştirdiyseniz, Role parametresi olmadan Remove-AzureServiceDiagnosticsExtension komutunu kullanarak uzantıyı kaldırabilirsiniz. Uzantı etkinleştirilirken Role parametresi kullanıldıysa, uzantı kaldırılırken de kullanılmalıdır.

Tanılama uzantısını her bir rolden kaldırmak için:

Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService" -Role "WebRole"

Sonraki Adımlar