Odesílání diagnostických protokolů služby Azure Stack Hub s využitím privilegovaného koncového bodu

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í PRIVILEGOVÉHO BODU ke shromažďování protokolů. Pokud rušíte spuštěné shromažďování protokolů, aby se spustilo nové, počkejte 5 minut, než začnete shromažďovat nové protokoly, 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 dat pro soubory protokolu pro časové období před 8 hodinami a 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ů s clustery Kubernetes s vlastní správou (modul AKS) ve službě Azure Stack. Protokoly Kubernetes by se měly ukládat v účtu úložiště tenanta ve formátu, který umožní použít i časový rozsah shromažďování.

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

    Pří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 adresy RP s přidanou hodnotou. Obecná syntaxe je:

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

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

    Get-AzureStackLog -FilterByResourceProvider SQLAdapter
    

    Shromažďování protokolů pro poskytovatele prostředků MySQL:

    Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
    

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

    Get-AzureStackLog -FilterByResourceProvider eventhub
    

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

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

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

    Příklad:

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

    Poznámka

    Tento postup je užitečný při nahrávání protokolů. I když sdílenou složku SMB nemáte přístupnou nebo přístup k internetu, můžete ve službě Azure Stack Hub vytvořit účet úložiště objektů blob pro přenos protokolů 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 typu prostředku kontejneru

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

    1. Vytvořte účet úložiště podle kroků v tomto článku.
    2. Otevřete instanci Průzkumník služby Azure Storage.
    3. Připojte se k účtu úložiště vytvořenému v kroku 1.
    4. Přejděte do části Kontejnery objektů blob ve službách úložiště.
    5. Vyberte Create a new container (Vytvořit nový kontejner).
    6. Klikněte pravým tlačítkem na nový kontejner a pak klikněte na Získat sdílený přístupový podpis.
    7. V závislosti na vašich požadavcích vyberte platný čas zahájení a čas ukončení.
    8. U požadovaných oprávnění vyberte Čtení, Zápis a Seznam.
    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 se používají k ukládání protokolů v umístění zadaném uživatelem.

  • Parametry FromDate a ToDate je možné 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í za poslední čtyři hodiny.

  • Pomocí parametru FilterByNode můžete filtrovat protokoly podle názvu počítače. Příklad:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
    
  • K filtrování protokolů podle typu použijte parametr FilterByLogType . Můžete filtrovat podle file (Soubor), Share (Sdílená složka) nebo WindowsEvent (Událost Windows). Pří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í souborů s výpisem paměti 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 použít parametr FilterByRole k filtrování shromažďování protokolů podle následujících rolí:

ACS

ACSBlob

ACSDownloadService

ACSFabric

ACSFrontEnd

Metriky ACS

ACSMigrationService

ACSMonitoringService

ACSSettingsService

ACSTableMaster

ACSTableServer

ACSWac

ADFS

Ovládací prvek aplikace

ASAppGateway

AzureBridge

AzureMonitor

BareMetal

BRP

CA

CacheService

Compute

CPI

CRP

DeploymentMachine

DiskRP

Doména

ECE

EventAdminRP

EventRP

ExterníDNS

FabricRing

Topologie FabricRingServices

FirstTierAggregationService

FRP

brána

Healthmonitoring

HintingServiceV2

HRP

IBC

InfraServiceController

KeyVaultAdminResourceProvider

KeyVaultControlPlane

KeyVaultDataPlane

KeyVaultInternalControlPlane

KeyVaultInternalDataPlane

KeyVaultNamingService

MDM

MetricsAdminRP

MetricsRP

MetricsServer

MetricsStoreService

MonAdminRP

MonRP

NC

NeprivilegedAppGateway

NRP

OboService

OEM

OnboardRP

PXE

QueryServiceCoordinator

QueryServiceWorker

Seedring

SeedRingServices

SLB

SQL

SRP

Storage

StorageController

URP

SupportBridgeController

Podpora

SupportRingServices

SupportBridgeRP

UsageBridge

Virtuální počítače

BYL

WASPUBLIC

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

  • Spuštění příkazu nějakou dobu trvá na základě toho, které role protokoly shromažďují. Mezi přispívající faktory patří také doba trvání zadaná 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 několika souborů ZIP. Pokud pro takovou roli chcete mít všechny soubory protokolu rozbalené do jedné složky, použijte nástroj, který může rozbalit hromadně. Vyberte všechny komprimované soubory pro roli a sem vyberte Extrahovat. Všechny soubory protokolu pro danou roli se rozbalí do jedné sloučené složky.

  • Soubor s názvem Get-AzureStackLog_Output.log se vytvoří také ve složce, která obsahuje komprimované soubory protokolu. Tento soubor je protokol výstupu příkazu, který lze použít k řešení potíží při shromažďování protokolů. Někdy soubor protokolu obsahuje PS>TerminatingError položky, které lze bezpečně ignorovat, pokud po spuštění shromažďování protokolů chybí očekávané soubory protokolu.

  • K prozkoumání konkrétního selhání můžou být potřeba protokoly 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 .
    • Cluster s podporou převzetí služeb při selhání a protokoly událostí Hyper-V se shromažďují v roli úložiště .
    • Protokoly služby ACS se shromažďují v rolích Úložiště a ACS .

Poznámka

U shromážděných protokolů se vynucují omezení velikosti a stáří, protože je to nezbytné k zajištění efektivního využití prostoru úložiště a zabránění zahlceni protokoly. Při diagnostice problému ale někdy potřebujete protokoly, které už kvůli těmto omezením neexistují. Proto důrazně doporučujeme každých 8 až 12 hodin převést protokoly do externího úložného prostoru (účet úložiště v Azure, další místní úložné zařízení atd.) a uchovávat 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 rutinu Invoke-AzureStackOnDemandLog (viz seznam na konci této části). Protokoly vygenerované touto rutinou se ve výchozím nastavení nezobrazují ve sadě protokolů, kterou obdržíte při spuštění rutiny Get-AzureStackLog . Tyto protokoly se také doporučuje shromažďovat jenom v případě, že o to požádá tým podpory Microsoftu.

V současné době můžete pomocí parametru -FilterByRole filtrovat shromažďování protokolů podle následujících rolí:

  • 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í PEP

Diagnostické nástroje služby Azure Stack Hub pomáhají usnadnit a zefektivnit shromažďování protokolů. Následující diagram znázorňuje fungování diagnostických nástrojů:

Diagram pracovního postupu diagnostických nástrojů služby Azure Stack Hub

Kolektor trasování

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

Get-AzureStackLog

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

Upozornění

Tyto soubory protokolů můžou obsahovat identifikovatelné osobní údaje. Před veřejným publikováním souborů protokolu to vezměte v úvahu.

Následuje několik příkladů typů protokolů, které se shromažďují:

  • Protokoly nasazení služby Azure Stack Hub
  • Protokoly událostí Windows
  • Protokoly Panther
  • Protokoly clusteru
  • Diagnostické protokoly úložiště
  • Protokoly trasování událostí pro Windows

Kolektor trasování tyto soubory shromažďuje a ukládá do sdílené složky. Get-AzureStackLog pak můžete v případě potřeby použít ke shromažďování.