Skicka Azure Stack Hub-diagnostikloggar med hjälp av den privilegierade slutpunkten (PEP)

Om du vill köra Get-AzureStackLog på ett integrerat system måste du ha åtkomst till den privilegierade slutpunkten (PEP). Här är ett exempelskript som du kan köra med PEP för att samla in loggar. Om du avbryter en loggsamling som körs för att starta en ny väntar du 5 minuter innan du startar en ny loggsamling och anger 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
}

Exempel

  • Samla in alla loggar för alla roller:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
    
  • Samla in loggar från VirtualMachines- och BareMetal-roller:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
    
  • Samla in loggar från VirtualMachines- och BareMetal-roller, med datumfiltrering för loggfiler under de senaste 8 timmarna:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
    
  • Samla in loggar från VirtualMachines- och BareMetal-roller, med datumfiltrering för loggfiler för tidsperioden mellan 8 timmar sedan och 2 timmar sedan:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
    
  • Samla in loggar från klientdistributioner som kör självhanterade Kubernetes-kluster (AKS-motor) i Azure Stack. Kubernetes-loggar ska lagras i ett klientlagringskonto i ett format som gör att samlingstidsintervallet även kan tillämpas på dem.

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

    Exempel:

    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) 
    
  • Samla in loggar för RP:er för värdetillägg. Den allmänna syntaxen är:

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

    Så här samlar du in loggar för SQL RP:

    Get-AzureStackLog -FilterByResourceProvider SQLAdapter
    

    Så här samlar du in loggar för MySQL RP:

    Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
    

    Så här samlar du in loggar för Event Hubs:

    Get-AzureStackLog -FilterByResourceProvider eventhub
    

    Så här samlar du in loggar för Azure Stack Edge:

    Get-AzureStackLog -FilterByResourceProvide databoxedge
    
  • Samla in loggar och lagra dem i den angivna Azure Storage-blobcontainern. Den allmänna syntaxen för den här åtgärden är följande:

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

    Exempel:

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

    Anteckning

    Den här proceduren är användbar för att ladda upp loggar. Även om du inte har en tillgänglig SMB-resurs eller internetåtkomst kan du skapa ett bloblagringskonto på Azure Stack Hub för att överföra loggarna och sedan använda klienten för att hämta loggarna.

    För att generera SAS-token för lagringskontot krävs följande behörigheter:

    • Åtkomst till Blob Storage-tjänsten.
    • Åtkomst till containerresurstypen.

    Följ dessa steg för att generera ett SAS Uri-värde som ska användas för parametern -OutputSasUri :

    1. Skapa ett lagringskonto enligt stegen i den här artikeln.
    2. Öppna en instans av Azure Storage Explorer.
    3. Anslut till lagringskontot som skapades i steg 1.
    4. Gå till BlobContainrar i Storage Services.
    5. Välj Skapa en ny container.
    6. Högerklicka på den nya containern och klicka sedan på Hämta signatur för delad åtkomst.
    7. Välj en giltig starttid och sluttid beroende på dina behov.
    8. För de behörigheter som krävs väljer du Läsa, Skriva och Lista.
    9. Välj Skapa.
    10. Du får en signatur för delad åtkomst. Kopiera URL-delen och ange den till parametern -OutputSasUri .

Parameteröverväganden

  • Parametrarna OutputSharePath och OutputShareCredential används för att lagra loggar på en angiven plats.

  • Parametrarna FromDate och ToDate kan användas för att samla in loggar under en viss tidsperiod. Om dessa parametrar inte anges samlas loggar in under de senaste fyra timmarna som standard.

  • Använd parametern FilterByNode för att filtrera loggar efter datornamn. Exempel:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
    
  • Använd parametern FilterByLogType för att filtrera loggar efter typ. Du kan välja att filtrera efter fil, resurs eller WindowsEvent. Exempel:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
    
  • Du kan använda parametern TimeOutInMinutes för att ange tidsgränsen för loggsamlingen. Den är inställd på 150 (2,5 timmar) som standard.

  • Dumpfilloggsamlingen är inaktiverad som standard. Om du vill aktivera den använder du switchparametern IncludeDumpFile .

  • För närvarande kan du använda parametern FilterByRole för att filtrera loggsamlingen efter följande roller:

ACS

ACSBlob

ACSDownloadService

ACSFabric

ACSFrontEnd

ACSMetrics

ACSMigrationService

ACSMonitoringService

ACSSettingsService

ACSTableMaster

ACSTableServer

ACSWac

ADFS

ApplicationController

ASAppGateway

AzureBridge

AzureMonitor

BareMetal

BRP

CA

CacheService

Compute

KPI

CRP

DeploymentMachine

DiskRP

Domain

ECE

EventAdminRP

EventRP

ExternalDNS

Infrastrukturresurser

FabricRingServices

FirstTierAggregationService

FRP

Gateway

HealthMonitoring

HintingServiceV2

HRP

IBC

InfraServiceController

KeyVaultAdminResourceProvider

KeyVaultControlPlane

KeyVaultDataPlane

KeyVaultInternalControlPlane

KeyVaultInternalDataPlane

KeyVaultNamingService

MDM

MetricsAdminRP

MetricsRP

MetricsServer

MetricsStoreService

MonAdminRP

MonRP

NC

NonPrivilegedAppGateway

NRP

OboService

OEM

OnboardRP

PXE

QueryServiceCoordinator

QueryServiceWorker

SeedRing

SeedRingServices

SLB

SQL

SRP

Storage

StorageController

URP

SupportBridgeController

SupportRing

SupportRingServices

SupportBridgeRP

UsageBridge

VirtualMachines

VAR

WASPUBLIC

Ytterligare överväganden för diagnostikloggar

  • Kommandot tar lite tid att köra baserat på vilka roller loggarna samlar in. Bidragande faktorer inkluderar även den tidsåtgång som angetts för loggsamlingen och antalet noder i Azure Stack Hub-miljön.

  • När loggsamlingen körs kontrollerar du den nya mappen som skapats i parametern OutputSharePath som anges i kommandot .

  • Varje roll har sina loggar i enskilda zip-filer. Beroende på storleken på de insamlade loggarna kan en roll ha sina loggar uppdelat i flera zip-filer. Om du vill att alla loggfiler ska packas upp i en enda mapp för en sådan roll använder du ett verktyg som kan packas upp i grupp. Markera alla zippade filer för rollen och välj extrahera här. Alla loggfiler för den rollen packas upp i en enda sammanfogad mapp.

  • En fil med namnet Get-AzureStackLog_Output.log skapas också i mappen som innehåller de zippade loggfilerna. Den här filen är en logg över kommandoutdata som kan användas för felsökning av problem under loggsamlingen. Ibland innehåller PS>TerminatingError loggfilen poster som kan ignoreras på ett säkert sätt, såvida inte förväntade loggfiler saknas efter att loggsamlingen har körts.

  • För att undersöka ett specifikt fel kan loggar behövas från mer än en komponent.

    • System- och händelseloggar för alla virtuella infrastrukturdatorer samlas in i rollen VirtualMachines .
    • System- och händelseloggar för alla värdar samlas in i BareMetal-rollen .
    • Redundanskluster och Hyper-V-händelseloggar samlas in i lagringsrollen .
    • ACS-loggar samlas in i rollerna Storage och ACS .

Anteckning

Storleks- och åldersgränser tillämpas på de loggar som samlas in eftersom det är viktigt att säkerställa effektiv användning av ditt lagringsutrymme och för att undvika att överbelastas med loggar. Men när du diagnostiserar ett problem behöver du ibland loggar som inte finns längre på grund av dessa gränser. Därför rekommenderar vi starkt att du avlastar loggarna till ett externt lagringsutrymme (ett lagringskonto i Azure, ytterligare en lokal lagringsenhet osv.) var 8:e till 12:e timme och behåller dem där i 1–3 månader, beroende på dina krav. Du bör också se till att lagringsplatsen är krypterad.

Invoke-AzureStackOnDemandLog

Du kan använda cmdleten Invoke-AzureStackOnDemandLog för att generera loggar på begäran för vissa roller (se listan i slutet av det här avsnittet). Loggarna som genereras av den här cmdleten finns inte som standard i loggpaketet som du får när du kör cmdleten Get-AzureStackLog . Vi rekommenderar också att du endast samlar in dessa loggar när microsofts supportteam begär det.

För närvarande kan du använda parametern -FilterByRole för att filtrera loggsamlingen efter följande roller:

  • OEM
  • NC
  • SLB
  • Gateway

Exempel på insamling av diagnostikloggar på begäran

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

Så här fungerar insamling av diagnostikloggar med PEP

Diagnostikverktyg för Azure Stack Hub gör logginsamlingen enkel och effektiv. Följande diagram visar hur diagnostikverktygen fungerar:

Arbetsflödesdiagram för Azure Stack Hub-diagnostikverktyg

Spårningsinsamlare

Spårningsinsamlaren är aktiverad som standard och körs kontinuerligt i bakgrunden för att samla in alla ETW-loggar (Event Tracing for Windows) från Azure Stack Hub-komponenttjänster. ETW-loggar lagras i en gemensam lokal resurs med en åldersgräns på fem dagar. När den här gränsen har nåtts tas de äldsta filerna bort när nya skapas. Den maximala standardstorleken som tillåts för varje fil är 200 MB. En storlekskontroll sker var 2:e minut och om den aktuella filen är >= 200 MB sparas den och en ny fil genereras. Det finns också en gräns på 8 GB för den totala filstorleken som genereras per händelsesession.

Get-AzureStackLog

PowerShell-cmdleten Get-AzureStackLog kan användas för att samla in loggar från alla komponenter i en Azure Stack Hub-miljö. De sparas i zip-filer på en användardefinierad plats. Om det tekniska supportteamet för Azure Stack Hub behöver dina loggar för att felsöka ett problem kan de be dig att köra Get-AzureStackLog.

Varning

Dessa loggfiler kan innehålla personligt identifierbar information (PII). Ta hänsyn till detta innan du publicerar loggfiler offentligt.

Följande är några exempel på loggtyper som samlas in:

  • Azure Stack Hub-distributionsloggar
  • Windows-händelseloggar
  • Panther-loggar
  • Klusterloggar
  • Diagnostikloggar för lagring
  • ETW-loggar

Dessa filer samlas in och sparas i en resurs av Trace Collector. Get-AzureStackLog kan sedan användas för att samla in dem vid behov.