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
:- Skapa ett lagringskonto enligt stegen i den här artikeln.
- Öppna en instans av Azure Storage Explorer.
- Anslut till lagringskontot som skapades i steg 1.
- Gå till BlobContainrar i Storage Services.
- Välj Skapa en ny container.
- Högerklicka på den nya containern och klicka sedan på Hämta signatur för delad åtkomst.
- Välj en giltig starttid och sluttid beroende på dina behov.
- För de behörigheter som krävs väljer du Läsa, Skriva och Lista.
- Välj Skapa.
- 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:
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.