Sdílet prostřednictvím


Odesílání diagnostických protokolů služby Azure Stack Hub pomocí privilegovaného koncového bodu (PEP)

Pokud chcete spustit Get-AzureStackLog v integrovaném systému, musíte mít přístup k privilegovanému koncovému bodu (PEP). Tady je ukázkový skript, který můžete spustit pomocí PEP ke shromažďování protokolů. Pokud zrušíte spuštěnou kolekci protokolů a spustíte novou kolekci protokolů, počkejte 5 minut, než spustíte novou kolekci protokolů, a zadejte 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
}

Příklady

  • Shromážděte všechny protokoly pro všechny role:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
    
  • Shromážděte protokoly z rolí VirtualMachines a BareMetal:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
    
  • Shromážděte protokoly z rolí VirtualMachines a BareMetal s filtrováním dat pro soubory protokolů za posledních 8 hodin:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
    
  • Shromážděte protokoly z rolí VirtualMachines a BareMetal s filtrováním podle data pro soubory protokolů v časovém období mezi před 8 hodinami a před 2 hodinami.

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
    
  • Shromážděte protokoly z nasazení tenantů, na kterých běží clustery Kubernetes (modul AKS) ve službě Azure Stack. Protokoly Kubernetes by se měly ukládat do účtu úložiště tenanta ve formátu, který umožní aplikaci časového rozsahu shromažďování na ně.

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

    Například:

    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) 
    
  • Shromážděte protokoly pro RPS s přidanou hodnotou. Obecná syntaxe je:

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

    Shromažďování protokolů pro poskytovatele prostředků SQL (RP):

    Get-AzureStackLog -FilterByResourceProvider SQLAdapter
    

    Pro shromáždění protokolů pro RP MySQL:

    Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
    

    Shromažďování protokolů pro službu Event Hubs:

    Get-AzureStackLog -FilterByResourceProvider eventhub
    

    Pro shromažďování protokolů pro Azure Stack Edge:

    Get-AzureStackLog -FilterByResourceProvide databoxedge
    
  • Shromážděte protokoly a uložte je do zadaného kontejneru Azure Storage blob. Obecná syntaxe této operace je následující:

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

    Například:

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

    Poznámka

    Tento postup je užitečný pro nahrávání protokolů. I když nemáte sdílenou složku SMB přístupnou nebo přístup k internetu, můžete ve službě Azure Stack Hub vytvořit účet úložiště objektů blob, který protokoly přenese, a pak tyto protokoly načíst pomocí klienta.

    K vygenerování tokenu SAS pro účet úložiště se vyžadují následující oprávnění:

    • Přístup ke službě Blob Storage
    • Přístup k prostředku typu kontejner.

    Pokud chcete vygenerovat hodnotu identifikátoru URI SAS, která se má použít pro parametr -OutputSasUri, postupujte takto:

    1. Vytvořte účet úložiště podle kroků v tomto článku.
    2. Otevřete instanci Průzkumníka služby Azure Storage.
    3. Připojte se k účtu úložiště vytvořenému v kroku 1.
    4. V rámci Storage Servicespřejděte na kontejnery BLOB.
    5. Vyberte Vytvořit nový kontejner.
    6. Klikněte pravým tlačítkem myši na nový kontejner a potom klikněte na Získat sdílený přístupový podpis.
    7. Podle vašich požadavků vyberte platný čas začátku a čas konce .
    8. Pro požadovaná oprávnění vyberte Čtení, Zápisa Výpis.
    9. Vyberte Vytvořit.
    10. Získáte sdílený přístupový podpis. Zkopírujte část adresy URL a zadejte ji do parametru -OutputSasUri.

Důležité informace o parametrech

  • Parametry OutputSharePath a OutputShareCredential slouží k ukládání protokolů v zadaném umístění uživatele.

  • Parametry FromDate a ToDate lze použít ke shromažďování protokolů pro určité časové období. Pokud tyto parametry nejsou zadané, protokoly se ve výchozím nastavení shromažďují po dobu posledních čtyř hodin.

  • K filtrování protokolů podle názvu počítače použijte parametr FilterByNode. Například:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
    
  • K filtrování protokolů podle typu použijte parametr FilterByLogType. Můžete se rozhodnout filtrovat podle souboru, sdílené složky nebo WindowsEventu. Například:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
    
  • K nastavení časového limitu pro shromažďování protokolů můžete použít parametr TimeOutInMinutes. Ve výchozím nastavení je nastavená na 150 (2,5 hodiny).

  • Shromažďování protokolů výpisu je ve výchozím nastavení zakázané. Pokud ho chcete povolit, použijte parametr přepínače IncludeDumpFile.

  • V současné době můžete k filtrování protokolů použít parametr FilterByRole podle následujících rolí:

ACS

ACSBlob

Služba Stahování ACS

ACSFabric

ACSFrontEnd

Metriky ACS

ACSMigrationService

ACSMonitoringService

ACSSettingsService

ACSTableMaster

ACSTableServer

ACSWac

ADFS

ApplicationController

ASAppGateway

AzureBridge

AzureMonitor

BareMetal

BRP

CA

CacheService

Vypočítat

Index spotřebitelských cen

CRP

Nasazovací stroj

DiskRP

Doména

ECE

EventAdminRP

EventRP

ExternalDNS

FabricRing

FabricRingServices

Služba pro agregaci na první úrovni

FrP

Brána

Monitorování zdraví

HintingServiceV2

HRP

IBC

InfraServiceController

KeyVaultAdminResourceProvider

KeyVaultControlPlane

KeyVaultDataPlane

KeyVaultInternalControlPlane

KeyVaultInternalDataPlane

KeyVaultNamingService

MDM

MetricsAdminRP

MetricsRP

MetricsServer

MetricsStoreService

MonAdminRP

MonRP

NC

NonPrivilegedAppGateway

NRP

OboService

Výrobce oem

OnboardRP

PXE

QueryServiceCoordinator

QueryServiceWorker

SeedRing

SeedRingServices

SLB

SQL

SRP

Skladování

StorageController

URP

SupportBridgeController

Podporový kruh

SupportRingServices

SupportBridgeRP

UsageBridge

Virtuální stroje

BYL

WASPUBLIC

Další důležité informace o diagnostických protokolech

  • Spuštění příkazu nějakou dobu trvá podle toho, pro které role se protokoly shromažďují. Mezi přispívající faktory patří také doba trvání určená pro shromažďování protokolů a počet uzlů v prostředí služby Azure Stack Hub.

  • Při spuštění shromažďování protokolů zkontrolujte novou složku vytvořenou v parametru OutputSharePath zadaném v příkazu.

  • Každá role má své protokoly v jednotlivých souborech ZIP. V závislosti na velikosti shromážděných protokolů může mít role své protokoly rozdělené do více souborů ZIP. Pro takovou roli, pokud chcete, aby se všechny soubory protokolu rozbalily do jedné složky, použijte nástroj, který může rozbalovat hromadně. Vyberte všechny komprimované soubory pro roli a vyberte extrahovat sem. Všechny soubory protokolu pro danou roli se rozbalí do jedné sloučené složky.

  • Ve složce, která obsahuje soubory protokolu zip, se vytvoří také soubor s názvem Get-AzureStackLog_Output.log. Tento soubor je protokol výstupu příkazu, který lze použít k řešení problémů během shromažďování protokolů. Logový soubor někdy obsahuje záznamy PS>TerminatingError, které je možné bezpečně ignorovat, pokud po spuštění shromažďování protokolů nechybí očekávané logové soubory.

  • Pokud chcete prošetřit konkrétní selhání, můžou být protokoly potřeba z více než jedné komponenty.

    • Protokoly systému a událostí pro všechny virtuální počítače infrastruktury se shromažďují v roli VirtualMachines.
    • Protokoly systému a událostí pro všechny hostitele se shromažďují v roli BareMetal.
    • Protokoly událostí Hyper-V a cluster s podporou převzetí služeb při selhání se shromažďují v rámci role Storage.
    • Protokoly služby ACS se shromažďují ve službě Storage a v rolích a ACS.

Poznámka

U shromážděných protokolů se vynucují omezení velikosti a stáří, protože je nezbytné zajistit efektivní využití prostoru úložiště a vyhnout se zahlceným protokolům. Při diagnostice problému ale někdy potřebujete protokoly, které už kvůli těmto limitům neexistují. Proto se důrazně doporučujeme, že protokoly přesměrujete do externího prostoru úložiště (účet úložiště v Azure, další místní úložné zařízení atd.) každých 8 až 12 hodin a necháte je tam po dobu 1 až 3 měsíců v závislosti na vašich požadavcích. Měli byste také zajistit, aby toto umístění úložiště bylo šifrované.

Invoke-AzureStackOnDemandLog

K vygenerování protokolů na vyžádání pro určité role můžete použít cmdlet Invoke-AzureStackOnDemandLog (viz seznam na konci této části). Protokoly vygenerované touto rutinou nejsou ve výchozím nastavení k dispozici v sadě protokolů, kterou obdržíte při spuštění rutiny Get-AzureStackLog. Doporučuje se také shromáždit tyto protokoly pouze v případě, že o to požádá tým podpory Microsoftu.

V současné době můžete použít parametr -FilterByRole k filtrování sběru protokolů podle následujících rolí:

  • Originální výrobce (OEM)
  • NC
  • SLB
  • Brána

Příklad shromažďování diagnostických protokolů na vyžádání

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

Jak funguje shromažďování diagnostických protokolů pomocí protokolu PEP

Diagnostické nástroje služby Azure Stack Hub usnadňují a zefektivní shromažďování protokolů. Následující diagram znázorňuje, jak diagnostické nástroje fungují:

diagramu pracovních postupů diagnostických nástrojů služby Azure Stack Hub

Sběrač tras

Kolektor trasování je ve výchozím nastavení povolený a běží nepřetržitě na pozadí a shromažďuje všechny protokoly trasování událostí pro Windows (ETW) ze služeb komponent služby Azure Stack Hub. Protokoly ETW se ukládají do společné místní sdílené složky s pětidenním limitem pro uchování. Po dosažení tohoto limitu se při vytváření nových souborů odstraní nejstarší soubory. Výchozí maximální povolená velikost každého souboru je 200 MB. Kontrola velikosti probíhá každých 2 minuty a pokud je aktuální soubor >= 200 MB, uloží se a vygeneruje se nový soubor. Pro celkovou velikost souboru vygenerovanou pro každou relaci události je také limit 8 GB.

Get-AzureStackLog

Rutina PowerShellu Get-AzureStackLog se dá použít ke shromažďování protokolů ze všech komponent v prostředí Služby Azure Stack Hub. Uloží je do souborů ZIP v uživatelsky definovaném umístění. Pokud tým technické podpory služby Azure Stack Hub potřebuje vaše protokoly, aby vám pomohl s řešením potíží, může vás požádat o spuštění rutiny Get-AzureStackLog.

Opatrnost

Tyto soubory protokolů mohou obsahovat identifikovatelné osobní údaje (PII). Vezměte to v úvahu dříve, než veřejně zveřejníte všechny soubory protokolu.

Tady jsou některé příklady typů protokolů, které se shromažďují:

  • protokoly nasazení služby Azure Stack Hub
  • protokoly událostí Windows
  • Panther protokoly
  • clusterové protokoly
  • diagnostické protokoly úložiště
  • protokoly ETW (Trasování událostí pro Windows)

Tyto soubory shromažďuje a ukládá Trace Collector do sdílené složky. Get-AzureStackLog je pak možné použít k jejich shromáždění v případě potřeby.