Diagnostische logboeken van Azure Stack Hub verzenden met behulp van het bevoegde eindpunt (PEP)

Als u Get-AzureStackLog wilt uitvoeren op een geïntegreerd systeem, moet u toegang hebben tot het bevoegde eindpunt (PEP). Hier volgt een voorbeeldscript dat u kunt uitvoeren met behulp van het PEP om logboeken te verzamelen. Als u een actieve logboekverzameling annuleert om een nieuwe te starten, wacht u 5 minuten voordat u een nieuwe logboekverzameling start en voert u in 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
}

Voorbeelden

  • Verzamel alle logboeken voor alle rollen:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
    
  • Logboeken verzamelen van VirtualMachines- en BareMetal-rollen:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
    
  • Verzamel logboeken van VirtualMachines- en BareMetal-rollen, met datumfiltering voor logboekbestanden voor de afgelopen 8 uur:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
    
  • Verzamel logboeken van VirtualMachines- en BareMetal-rollen, met datumfiltering voor logboekbestanden voor de periode tussen 8 uur geleden en 2 uur geleden:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
    
  • Verzamel logboeken van tenantimplementaties met zelfbeheerde Kubernetes-clusters (AKS-engine) op Azure Stack. Kubernetes-logboeken moeten worden opgeslagen in een tenantopslagaccount in een indeling waarmee het tijdsbereik van de verzameling ook op deze accounts kan worden toegepast.

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

    Bijvoorbeeld:

    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) 
    
  • Verzamel logboeken voor de RPs met toegevoegde waarde. De algemene syntaxis is:

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

    Logboeken verzamelen voor SQL RP:

    Get-AzureStackLog -FilterByResourceProvider SQLAdapter
    

    Logboeken verzamelen voor MySQL RP:

    Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
    

    Logboeken verzamelen voor Event Hubs:

    Get-AzureStackLog -FilterByResourceProvider eventhub
    

    Logboeken verzamelen voor Azure Stack Edge:

    Get-AzureStackLog -FilterByResourceProvide databoxedge
    
  • Verzamel logboeken en sla deze op in de opgegeven Azure Storage-blobcontainer. De algemene syntaxis voor deze bewerking is als volgt:

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

    Bijvoorbeeld:

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

    Notitie

    Deze procedure is handig voor het uploaden van logboeken. Zelfs als u geen toegankelijke SMB-share of internettoegang hebt, kunt u een blob-opslagaccount maken in uw Azure Stack Hub om de logboeken over te dragen en vervolgens uw client gebruiken om deze logboeken op te halen.

    Voor het genereren van het SAS-token voor het opslagaccount zijn de volgende machtigingen vereist:

    • Toegang tot de Blob Storage-service.
    • Toegang tot het type containerresource.

    Voer de volgende stappen uit om een SAS-URI-waarde te genereren die moet worden gebruikt voor de -OutputSasUri parameter:

    1. Maak een opslagaccount volgens de stappen in dit artikel.
    2. Open een exemplaar van de Azure Storage Explorer.
    3. Maak verbinding met het opslagaccount dat u in stap 1 hebt gemaakt.
    4. Navigeer naar BlobContainers in Storage Services.
    5. Selecteer Een nieuwe container maken.
    6. Klik met de rechtermuisknop op de nieuwe container en klik vervolgens op Shared Access Signature ophalen.
    7. Selecteer een geldige begintijd en eindtijd, afhankelijk van uw vereisten.
    8. Selecteer Lezen, Schrijven en Lijst voor de vereiste machtigingen.
    9. Selecteer Maken.
    10. U krijgt een Shared Access Signature. Kopieer het URL-gedeelte en geef deze op aan de -OutputSasUri parameter .

Overwegingen voor parameters

  • De parameters OutputSharePath en OutputShareCredential worden gebruikt om logboeken op te slaan op een door de gebruiker opgegeven locatie.

  • De parameters FromDate en ToDate kunnen worden gebruikt om logboeken voor een bepaalde periode te verzamelen. Als deze parameters niet zijn opgegeven, worden standaard logboeken verzameld voor de afgelopen vier uur.

  • Gebruik de parameter FilterByNode om logboeken te filteren op computernaam. Bijvoorbeeld:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
    
  • Gebruik de parameter FilterByLogType om logboeken te filteren op type. U kunt filteren op Bestand, Delen of WindowsEvent. Bijvoorbeeld:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
    
  • U kunt de parameter TimeOutInMinutes gebruiken om de time-out voor logboekverzameling in te stellen. Deze is standaard ingesteld op 150 (2,5 uur).

  • Dumpbestandslogboekverzameling is standaard uitgeschakeld. Gebruik de switchparameter IncludeDumpFile om dit in te schakelen.

  • Op dit moment kunt u de parameter FilterByRole gebruiken om de logboekverzameling te filteren op de volgende rollen:

ACS

ACSBlob

ACSDownloadService

ACSFabric

ACSFrontEnd

ACSMetrics

ACSMigrationService

ACSMonitoringService

ACSSettingsService

ACSTableMaster

ACSTableServer

ACSWac

ADFS

ApplicationController

ASAppGateway

AzureBridge

AzureMonitor

BareMetal

BRP

CA (consistentie en beschikbaarheid)

CacheService

Compute

CPI

CRP

DeploymentMachine

DiskRP

Domain

ECE

EventAdminRP

EventRP

ExternalDNS

FabricRing

FabricRingServices

FirstTierAggregationService

FRP

Gateway

HealthMonitoring

HintingServiceV2

HRP

IBC

InfraServiceController

KeyVaultAdminResourceProvider

KeyVaultControlPlane

KeyVaultDataPlane

KeyVaultInternalControlPlane

KeyVaultInternalDataPlane

KeyVaultNamingService

MDM

MetricsAdminRP

Metrische gegevensRP

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

WAS

WASPUBLIC

Aanvullende overwegingen voor diagnostische logboeken

  • Het duurt even voordat de opdracht is uitgevoerd op basis van welke rol(s) de logboeken worden verzameld. Bijdragende factoren zijn ook de tijdsduur die is opgegeven voor het verzamelen van logboeken en het aantal knooppunten in de Azure Stack Hub-omgeving.

  • Terwijl de logboekverzameling wordt uitgevoerd, controleert u de nieuwe map die is gemaakt in de parameter OutputSharePath die is opgegeven in de opdracht.

  • Elke rol heeft de logboeken in afzonderlijke zip-bestanden. Afhankelijk van de grootte van de verzamelde logboeken, kunnen de logboeken van een rol worden gesplitst in meerdere zip-bestanden. Als u voor een dergelijke rol alle logboekbestanden in één map wilt uitpakken, gebruikt u een hulpprogramma dat bulksgewijs kan worden uitgepakt. Selecteer alle gezipte bestanden voor de rol en selecteer hier uitpakken. Alle logboekbestanden voor die rol worden uitgepakt in één samengevoegde map.

  • Er wordt ook een bestand met de naam Get-AzureStackLog_Output.log gemaakt in de map met de gezipte logboekbestanden. Dit bestand is een logboek van de uitvoer van de opdracht, die kan worden gebruikt voor het oplossen van problemen tijdens het verzamelen van logboeken. Soms bevat PS>TerminatingError het logboekbestand vermeldingen die veilig kunnen worden genegeerd, tenzij er verwachte logboekbestanden ontbreken nadat de logboekverzameling is uitgevoerd.

  • Als u een specifieke fout wilt onderzoeken, zijn er mogelijk logboeken nodig van meer dan één onderdeel.

    • Systeem- en gebeurtenislogboeken voor alle infrastructuur-VM's worden verzameld in de rol VirtualMachines .
    • Systeem- en gebeurtenislogboeken voor alle hosts worden verzameld in de BareMetal-rol .
    • Failovercluster en Hyper-V-gebeurtenislogboeken worden verzameld in de rol Opslag .
    • ACS-logboeken worden verzameld in de rollen Opslag en ACS .

Notitie

Grootte- en leeftijdslimieten worden afgedwongen voor de logboeken die worden verzameld, omdat het essentieel is om ervoor te zorgen dat uw opslagruimte efficiënt wordt gebruikt en om te voorkomen dat u overspoeld wordt met logboeken. Wanneer u echter een probleem diagnosticeert, hebt u soms logboeken nodig die niet meer bestaan vanwege deze limieten. Het wordt daarom ten zeerste aanbevolen om uw logboeken elke 8 tot 12 uur te offloaden naar een externe opslagruimte (een opslagaccount in Azure, een extra on-premises opslagapparaat, enzovoort) en ze daar gedurende 1 tot 3 maanden te bewaren, afhankelijk van uw vereisten. U moet er ook voor zorgen dat deze opslaglocatie is versleuteld.

Invoke-AzureStackOnDemandLog

U kunt de cmdlet Invoke-AzureStackOnDemandLog gebruiken om logboeken op aanvraag te genereren voor bepaalde rollen (zie de lijst aan het einde van deze sectie). De logboeken die door deze cmdlet worden gegenereerd, zijn niet standaard aanwezig in de logboekbundel die u ontvangt wanneer u de cmdlet Get-AzureStackLog uitvoert. Het is ook raadzaam dat u deze logboeken alleen verzamelt wanneer dit wordt gevraagd door het ondersteuningsteam van Microsoft.

Op dit moment kunt u de -FilterByRole parameter gebruiken om logboekverzameling te filteren op de volgende rollen:

  • OEM
  • NC
  • SLB
  • Gateway

Voorbeeld van het verzamelen van diagnostische logboeken op aanvraag

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

Hoe het verzamelen van diagnostische logboeken met behulp van het PEP werkt

Diagnostische hulpprogramma's van Azure Stack Hub helpen het verzamelen van logboeken eenvoudig en efficiënt te maken. In het volgende diagram ziet u hoe de diagnostische hulpprogramma's werken:

Werkstroomdiagram voor diagnostische hulpprogramma's van Azure Stack Hub

Traceringsverzamelaar

Trace collector is standaard ingeschakeld en wordt continu op de achtergrond uitgevoerd om alle ETW-logboeken (Event Tracing for Windows) van Azure Stack Hub-onderdeelservices te verzamelen. ETW-logboeken worden opgeslagen in een gemeenschappelijke lokale share met een leeftijdslimiet van vijf dagen. Zodra deze limiet is bereikt, worden de oudste bestanden verwijderd wanneer er nieuwe worden gemaakt. De standaard maximumgrootte die is toegestaan voor elk bestand is 200 MB. Er wordt elke 2 minuten een groottecontrole uitgevoerd. Als het huidige bestand = 200 MB is >, wordt het opgeslagen en wordt er een nieuw bestand gegenereerd. Er geldt ook een limiet van 8 GB voor de totale bestandsgrootte die per gebeurtenissessie wordt gegenereerd.

Get-AzureStackLog

De PowerShell-cmdlet Get-AzureStackLog kan worden gebruikt voor het verzamelen van logboeken van alle onderdelen in een Azure Stack Hub-omgeving. Ze worden opgeslagen in zip-bestanden op een door de gebruiker gedefinieerde locatie. Als het technische ondersteuningsteam van Azure Stack Hub uw logboeken nodig heeft om een probleem op te lossen, wordt u mogelijk gevraagd Get-AzureStackLog uit te voeren.

Waarschuwing

Deze logboekbestanden kunnen persoonlijk identificeerbare informatie (PII) bevatten. Neem hier rekening mee voordat u logboekbestanden openbaar plaatst.

Hier volgen enkele voorbeelden van logboektypen die worden verzameld:

  • Azure Stack Hub-implementatielogboeken
  • Windows-gebeurtenislogboeken
  • Panther-logboeken
  • Clusterlogboeken
  • Diagnostische logboeken voor opslag
  • ETW-logboeken

Deze bestanden worden verzameld en opgeslagen in een share door Trace Collector. Get-AzureStackLog kan vervolgens worden gebruikt om ze te verzamelen wanneer dat nodig is.