Ayrıcalıklı uç noktayı (PEP) kullanarak Azure Stack Hub tanılama günlüklerini gönderme

tümleşik bir sistemde Get-AzureStackLog çalıştırmak için ayrıcalıklı uç noktaya (PEP) erişiminiz olmalıdır. Aşağıda, günlükleri toplamak için PEP kullanarak çalıştırabileceğiniz örnek bir betik verilmiş. Yeni bir günlük koleksiyonu başlatmak için çalışan bir günlük koleksiyonunu iptal ediyorsanız, yeni günlük toplamaya başlamadan önce lütfen 5 dakika bekleyin ve girin Remove-PSSession -Session $session.

$ipAddress = "<IP ADDRESS OF THE PEP VM>" # You can also use the machine name instead of IP here.

$password = ConvertTo-SecureString "<CLOUD ADMIN PASSWORD>" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential ("<DOMAIN NAME>\CloudAdmin", $password)

$shareCred = Get-Credential

$session = New-PSSession -ComputerName $ipAddress -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

$fromDate = (Get-Date).AddHours(-8)
$toDate = (Get-Date).AddHours(-2) # Provide the time that includes the period for your issue

Invoke-Command -Session $session { Get-AzureStackLog -OutputSharePath "<EXTERNAL SHARE ADDRESS>" -OutputShareCredential $using:shareCred -FilterByRole Storage -FromDate $using:fromDate -ToDate $using:toDate}

if ($session) {
    Remove-PSSession -Session $session
}

Örnekler

  • Tüm roller için tüm günlükleri toplayın:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
    
  • VirtualMachines ve BareMetal rollerinden günlükleri toplayın:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
    
  • VirtualMachines ve BareMetal rollerinden günlükleri toplayın ve son 8 saat için günlük dosyaları için tarih filtrelemesi yapın:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
    
  • VirtualMachines ve BareMetal rollerinden günlükleri toplayın ve 8 saat önce ile 2 saat önce arasındaki süre boyunca günlük dosyaları için tarih filtrelemesi yapın:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
    
  • Azure Stack'te kendi kendine yönetilen Kubernetes kümeleri (AKS altyapısı) çalıştıran kiracı dağıtımlarından günlükleri toplayın. Kubernetes günlükleri, bir kiracı depolama hesabında koleksiyon zaman aralığının da bunlara uygulanmasını sağlayacak biçimde depolanmalıdır.

    Get-AzureStackLog -OutputPath <Path> -InputSasUri "<Blob Service Sas URI>" -FromDate "<Beginning of the time range>" -ToDate "<End of the time range>"
    

    Örnek:

    Get-AzureStackLog -OutputPath C:\KubernetesLogs -InputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>" -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2) 
    
  • Değer ekleme RP'leri için günlükleri toplayın. Genel söz dizimi:

    Get-AzureStackLog -FilterByResourceProvider <<value-add RP name>>
    

    SQL RP günlüklerini toplamak için:

    Get-AzureStackLog -FilterByResourceProvider SQLAdapter
    

    MySQL RP günlüklerini toplamak için:

    Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
    

    Event Hubs günlüklerini toplamak için:

    Get-AzureStackLog -FilterByResourceProvider eventhub
    

    Azure Stack Edge günlüklerini toplamak için:

    Get-AzureStackLog -FilterByResourceProvide databoxedge
    
  • Günlükleri toplayın ve belirtilen Azure Depolama blob kapsayıcısında depolayın. Bu işlemin genel söz dizimi aşağıdaki gibidir:

    Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
    

    Örnek:

    Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
    

    Not

    Bu yordam günlükleri karşıya yüklemek için kullanışlıdır. Erişilebilir veya İnternet erişimi olan bir SMB paylaşımınız olmasa bile, günlükleri aktarmak için Azure Stack Hub'ınızda bir blob depolama hesabı oluşturabilir ve ardından istemcinizi kullanarak bu günlükleri alabilirsiniz.

    Depolama hesabı için SAS belirtecini oluşturmak için aşağıdaki izinler gereklidir:

    • Blob Depolama hizmetine erişim.
    • Kapsayıcı kaynak türüne erişim.

    parametresi için kullanılacak bir SAS Uri değeri oluşturmak için -OutputSasUri şu adımları izleyin:

    1. Bu makaledeki adımları izleyerek bir depolama hesabı oluşturun.
    2. Azure Depolama Gezgini örneğini açın.
    3. 1. adımda oluşturulan depolama hesabına bağlanın.
    4. Depolama Hizmetleri'ndeBlob Kapsayıcıları'na gidin.
    5. Yeni kapsayıcı oluştur'u seçin.
    6. Yeni kapsayıcıya sağ tıklayın ve ardından Paylaşılan Erişim İmzası Al'a tıklayın.
    7. Gereksinimlerinize bağlı olarak geçerli bir Başlangıç Saati ve Bitiş Saati seçin.
    8. Gerekli izinler için Okuma, Yazma ve Liste'yi seçin.
    9. Oluştur’u seçin.
    10. Paylaşılan Erişim İmzası alırsınız. URL bölümünü kopyalayın ve parametresine -OutputSasUri sağlayın.

Parametreyle ilgili dikkat edilmesi gerekenler

  • OutputSharePath ve OutputShareCredential parametreleri, günlükleri kullanıcı tarafından belirtilen bir konumda depolamak için kullanılır.

  • FromDate ve ToDate parametreleri belirli bir zaman aralığı için günlükleri toplamak için kullanılabilir. Bu parametreler belirtilmezse, günlükler varsayılan olarak son dört saat için toplanır.

  • Günlükleri bilgisayar adına göre filtrelemek için FilterByNode parametresini kullanın. Örnek:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
    
  • Günlükleri türe göre filtrelemek için FilterByLogType parametresini kullanın. Dosya, Paylaş veya WindowsEvent'e göre filtrelemeyi seçebilirsiniz. Örnek:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
    
  • Günlük toplama zaman aşımını ayarlamak için TimeOutInMinutes parametresini kullanabilirsiniz. Varsayılan olarak 150 (2,5 saat) olarak ayarlanır.

  • Döküm dosyası günlüğü koleksiyonu varsayılan olarak devre dışıdır. Etkinleştirmek için IncludeDumpFile anahtar parametresini kullanın.

  • Şu anda, günlük koleksiyonunu aşağıdaki rollere göre filtrelemek için FilterByRole parametresini kullanabilirsiniz:

ACS

ACSBlob

ACSDownloadService

ACSFabric

ACSFrontEnd

ACSMetrics

ACSMigrationService

ACSMonitoringService

ACSSettingsService

ACSTableMaster

ACSTableServer

ACSWac

ADFS

ApplicationController

ASAppGateway

AzureBridge

AzureMonitor

BareMetal

BRP

CA

CacheService

İşlem

TÜFE

CRP

DeploymentMachine

DiskRP

Etki alanı

ECE

EventAdminRP

EventRP

DışDN'ler

Doku Alma

FabricRingServices

FirstTierAggregationService

FRP

Ağ geçidi

Healthmonitoring

HintingServiceV2

HRP

IBC

InfraServiceController

KeyVaultAdminResourceProvider

KeyVaultControlPlane

KeyVaultDataPlane

KeyVaultInternalControlPlane

KeyVaultInternalDataPlane

KeyVaultNamingService

MDM

MetricsAdminRP

ÖlçümLERRP

MetricsServer

MetricsStoreService

MonAdminRP

MonRP

NC

NonPrivilegedAppGateway

NRP

OboService

OEM

OnboardRP

PXE

QueryServiceCoordinator

QueryServiceWorker

SeedRing

SeedRingServices

SLB

SQL

SRP

Depolama

StorageController

URP

SupportBridgeController

Destek

SupportRingServices

SupportBridgeRP

UsageBridge

VirtualMachines

WAS

WASPUBLIC

Tanılama günlüklerinde dikkat edilmesi gereken ek noktalar

  • Komutun çalıştırılması, günlüklerin hangi rolleri topladığına bağlı olarak biraz zaman alır. Katkıda bulunan faktörler günlük toplama için belirtilen süreyi ve Azure Stack Hub ortamındaki düğüm sayısını da içerir.

  • Günlük toplama çalışırken, komutunda belirtilen OutputSharePath parametresinde oluşturulan yeni klasörü denetleyin.

  • Her rolün tek tek zip dosyaları içinde günlükleri vardır. Toplanan günlüklerin boyutuna bağlı olarak, bir rolün günlükleri birden çok zip dosyası olarak bölünmüş olabilir. Böyle bir rol için, tüm günlük dosyalarının tek bir klasöre sıkıştırmasını açmak istiyorsanız, sıkıştırmasını toplu olarak açabilen bir araç kullanın. Rol için tüm sıkıştırılmış dosyaları seçin ve buradan ayıkla'yı seçin. Bu rolün tüm günlük dosyalarının sıkıştırması tek bir birleştirilmiş klasöre açılır.

  • Sıkıştırılmış günlük dosyalarını içeren klasörde Get-AzureStackLog_Output.log adlı bir dosya da oluşturulur. Bu dosya, günlük toplama sırasındaki sorunları gidermek için kullanılabilen komut çıkışının günlüğüdür. Bazen günlük dosyası, günlük toplama çalıştırıldıktan sonra beklenen günlük dosyaları eksik olmadığı sürece güvenle yoksayılabilir girdiler içerir PS>TerminatingError .

  • Belirli bir hatayı araştırmak için birden fazla bileşenden günlüklere ihtiyaç duyulabilir.

    • Tüm altyapı VM'leri için sistem ve olay günlükleri VirtualMachines rolünde toplanır.
    • Tüm konaklar için sistem ve olay günlükleri BareMetal rolünde toplanır.
    • Yük devretme kümesi ve Hyper-V olay günlükleri Depolama rolünde toplanır.
    • ACS günlükleri Depolama ve ACS rollerinde toplanır.

Not

Depolama alanınızın verimli bir şekilde kullanıldığından emin olmak ve günlüklerin taşmasını önlemek için gerekli olduğundan toplanan günlüklerde boyut ve yaş sınırları uygulanır. Ancak, bir sorunu tanılarken, bazen bu sınırlar nedeniyle artık mevcut olmayan günlüklere ihtiyacınız vardır. Bu nedenle günlüklerinizi her 8-12 saatte bir harici depolama alanına (Azure'da bir depolama hesabı, ek bir şirket içi depolama cihazı vb.) boşaltmanız ve gereksinimlerinize bağlı olarak 1 - 3 ay boyunca orada tutmanız kesinlikle önerilir . Bu depolama konumunun şifrelendiğinden de emin olmanız gerekir.

Invoke-AzureStackOnDemandLog

Invoke-AzureStackOnDemandLog cmdlet'ini kullanarak belirli roller için isteğe bağlı günlükler oluşturabilirsiniz (bu bölümün sonundaki listeye bakın). Bu cmdlet tarafından oluşturulan günlükler , Get-AzureStackLog cmdlet'ini yürütürken aldığınız günlük paketinde varsayılan olarak mevcut değildir. Ayrıca, bu günlükleri yalnızca Microsoft destek ekibi tarafından istendiğinde toplamanız önerilir.

Şu anda, günlük toplamayı -FilterByRole aşağıdaki rollere göre filtrelemek için parametresini kullanabilirsiniz:

  • OEM
  • NC
  • SLB
  • Ağ geçidi

İsteğe bağlı tanılama günlüklerini toplama örneği

$ipAddress = "<IP ADDRESS OF THE PEP VM>" # You can also use the machine name instead of IP here.

$password = ConvertTo-SecureString "<CLOUD ADMIN PASSWORD>" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential ("<DOMAIN NAME>\CloudAdmin", $password)

$shareCred = Get-Credential

$session = New-PSSession -ComputerName $ipAddress -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

$fromDate = (Get-Date).AddHours(-8)
$toDate = (Get-Date).AddHours(-2) # Provide the time that includes the period for your issue

Invoke-Command -Session $session {
   Invoke-AzureStackOnDemandLog -Generate -FilterByRole "<on-demand role name>" # Provide the supported on-demand role name e.g. OEM, NC, SLB, Gateway
   Get-AzureStackLog -OutputSharePath "<external share address>" -OutputShareCredential $using:shareCred -FilterByRole Storage -FromDate $using:fromDate -ToDate $using:toDate
}

if ($session) {
   Remove-PSSession -Session $session
}

PEP kullanarak tanılama günlüğü toplama nasıl çalışır?

Azure Stack Hub tanılama araçları günlük toplamayı kolay ve verimli hale getirmenizi sağlar. Aşağıdaki diyagramda tanılama araçlarının nasıl çalıştığı gösterilmektedir:

Azure Stack Hub tanılama araçları iş akışı diyagramı

İzleme Toplayıcısı

İzleme Toplayıcısı varsayılan olarak etkindir ve Azure Stack Hub bileşen hizmetlerinden tüm Windows için Olay İzleme (ETW) günlüklerini toplamak için arka planda sürekli olarak çalışır. ETW günlükleri, beş günlük yaş sınırı olan ortak bir yerel paylaşımda depolanır. Bu sınıra ulaşıldığında, yeni dosyalar oluşturulduktan sonra en eski dosyalar silinir. Her dosya için izin verilen varsayılan boyut üst sınırı 200 MB'tır. Boyut denetimi 2 dakikada bir gerçekleşir ve geçerli dosya >= 200 MB ise kaydedilir ve yeni bir dosya oluşturulur. Olay oturumu başına oluşturulan toplam dosya boyutu üzerinde de 8 GB sınırı vardır.

Get-AzureStackLog

PowerShell cmdlet'i Get-AzureStackLog, Azure Stack Hub ortamındaki tüm bileşenlerden günlükleri toplamak için kullanılabilir. Bunları kullanıcı tanımlı bir konumdaki zip dosyalarına kaydeder. Azure Stack Hub teknik destek ekibinin bir sorunu gidermenize yardımcı olması için günlüklerinize ihtiyacı varsa Get-AzureStackLog komutunu çalıştırmanızı isteyebilirler.

Dikkat

Bu günlük dosyaları kişisel bilgileri (PII) içerebilir. Günlük dosyalarını herkese açık olarak göndermeden önce bunu dikkate alın.

Aşağıda toplanan bazı örnek günlük türleri verilmiştir:

  • Azure Stack Hub dağıtım günlükleri
  • Windows olay günlükleri
  • Panter günlükleri
  • Küme günlükleri
  • Depolama tanılama günlükleri
  • ETW günlükleri

Bu dosyalar İzleme Toplayıcısı tarafından toplanır ve bir paylaşıma kaydedilir. Get-AzureStackLog gerektiğinde bunları toplamak için kullanılabilir.