Partager via


Envoyer des journaux de diagnostic Azure Stack Hub à l’aide du point de terminaison privilégié (PEP)

Pour exécuter Get-AzureStackLog sur un système intégré, vous devez avoir accès au point de terminaison privilégié (PEP). Voici un exemple de script que vous pouvez exécuter en utilisant le point de terminaison privilégié pour collecter des journaux. Si vous annulez une collecte de journaux en cours d’exécution pour en démarrer une nouvelle, attendez 5 minutes avant de démarrer la nouvelle collecte de journaux et entrez 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
}

Exemples

  • Collectez tous les journaux d’activité pour tous les rôles :

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
    
  • Collecter les journaux d’activité à partir des rôles VirtualMachines et BareMetal :

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
    
  • Collecter les journaux d’activité à partir des rôles VirtualMachines et BareMetal, avec un filtrage de date pour les fichiers journaux pour les huit dernières heures :

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
    
  • Collecter les journaux d’activité à partir des rôles VirtualMachines et BareMetal, avec un filtrage de date pour les fichiers journaux des 2 à 8 dernières heures :

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
    
  • Collectez les journaux des déploiements de locataires qui exécutent les clusters Kubernetes auto-managés (moteur AKS) sur Azure Stack. Les journaux Kubernetes doivent être stockés dans un compte de stockage de locataire dans un format qui permettra de leur appliquer l’intervalle de temps de la collection.

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

    Par exemple:

    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) 
    
  • Collecter les journaux pour les fournisseurs de ressources à valeur ajoutée. La syntaxe générale est la suivante :

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

    Pour collecter les journaux pour SQL RP :

    Get-AzureStackLog -FilterByResourceProvider SQLAdapter
    

    Pour collecter les journaux pour MySQL RP :

    Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
    

    Pour collecter les journaux pour Event Hubs :

    Get-AzureStackLog -FilterByResourceProvider eventhub
    

    Pour collecter les journaux d’activité pour Azure Stack Edge :

    Get-AzureStackLog -FilterByResourceProvide databoxedge
    
  • Collectez les journaux et stockez-les dans le conteneur d’objets blob Stockage Azure spécifié. La syntaxe générale de cette opération est la suivante :

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

    Par exemple:

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

    Remarque

    Cette procédure est utile pour le chargement des journaux. Même si vous ne disposez pas d’un partage SMB accessible ou d’un accès Internet, vous pouvez créer un compte de stockage Blob sur votre Azure Stack Hub pour transférer les journaux, puis utiliser votre client pour récupérer ces journaux.

    Pour générer le jeton SAP pour le compte de stockage, les autorisations suivantes sont requises :

    • Accès au service de stockage Blob.
    • Accès au type de ressource de conteneur.

    Pour générer une valeur d’URI SAP à utiliser pour le -OutputSasUri paramètre, procédez comme suit :

    1. Créez un compte de stockage en suivant les étapes décrites dans cet article.
    2. Ouvrez une instance de l’Explorateur Stockage Azure.
    3. Connectez-vous au compte de stockage créé à l’étape 1.
    4. Accédez à Conteneurs d’objets Blob dans Services de stockage.
    5. Sélectionnez Créer un conteneur.
    6. Cliquez avec le bouton droit sur le nouveau conteneur, puis cliquez sur Obtenir la signature d’accès partagé.
    7. Sélectionnez une heure de début et une heure de fin valides, en fonction de vos besoins.
    8. Pour les autorisations requises, sélectionnez Lecture, Écriture et Liste.
    9. Cliquez sur Créer.
    10. Vous obtiendrez une signature d’accès partagé. Copiez la partie URL et fournissez-la au paramètre -OutputSasUri.

Considérations relatives aux paramètres

  • Les paramètres OutputSharePath et OutputShareCredential sont utilisés pour stocker les journaux dans un emplacement spécifié par l’utilisateur.

  • Vous pouvez utiliser les paramètres FromDate et ToDate pour collecter des journaux d’activité pour une période donnée. Si vous ne spécifiez pas ces paramètres, les journaux sont collectés par défaut pour les quatre dernières heures.

  • Utilisez le paramètre FilterByNode pour filtrer les journaux d’activité par nom d’ordinateur. Par exemple:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
    
  • Utilisez le paramètre FilterByLogType pour filtrer les logs par type. Vous pouvez choisir de filtrer par fichier, par partage ou par événement Windows. Par exemple:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
    
  • Vous pouvez utiliser le paramètre TimeOutInMinutes pour définir le délai d’expiration pour la collecte des journaux. Elle est définie sur 150 (2,5 heures) par défaut.

  • La collecte de journaux de fichiers de vidage est désactivée par défaut. Pour l’activer, utilisez le paramètre de commutateur IncludeDumpFile .

  • Actuellement, vous pouvez utiliser le paramètre FilterByRole pour filtrer la collecte de journaux en fonction des rôles suivants :

ACS

ACSBlob

ACSDownloadService

ACSFabric

ACSFrontEnd

ACSMetrics

ACSMigrationService

Service de Surveillance ACS

ACSSettingsService

ACSTableMaster

ACSTableServer

ACSWac

ADFS

ApplicationController

ASAppGateway

AzureBridge

AzureMonitor

BareMetal

BRP

CA

CacheService

Calcul

IPC

protéine C-réactive (CRP)

DeploymentMachine

DiskRP

Domain

ECE

EventAdminRP

EventRP

ExternalDNS

FabricRing

FabricRingServices

ServiceD'agrégationDePremierNiveau

FRP

Passerelle

Suivi de la santé

HintingServiceV2

HRP

IBC

InfraServiceController

KeyVaultAdminResourceProvider

KeyVaultControlPlane

KeyVaultDataPlane

KeyVaultInternalControlPlane

KeyVaultInternalDataPlane

KeyVaultNamingService

GESTION DES APPAREILS MOBILES

MetricsAdminRP

MetricsRP

MetricsServer

MetricsStoreService

MonAdminRP

MonRP

NC

NonPrivilegedAppGateway

NRP

OboService

OEM

OnboardRP

PXE

Coordonnateur de Service de Requête

QueryServiceWorker

SeedRing

SeedRingServices

SLB

SQL

Stratégies de restriction logicielle

Stockage

Contrôleur de stockage

URP

SupportBridgeController

SupportRing

SupportRingServices

SupportBridgeRP

UsageBridge

VirtualMachines

WAS

WASPUBLIC

Considérations supplémentaires sur les journaux de diagnostic

  • L’exécution de cette commande peut prendre un certain temps, en fonction des données du ou des rôles collectées par les journaux d’activité. Des facteurs déterminants sont aussi la durée spécifiée pour la collecte de journaux et le nombre de nœuds de l’environnement Azure Stack Hub.

  • Une fois la collecte de journaux en cours, vérifiez le dossier créé dans le paramètre OutputSharePath spécifié dans la commande.

  • Chaque rôle a ses journaux d’activité dans des fichiers zip individuels. Selon la taille des journaux collectés, un rôle peut avoir ses journaux divisés en plusieurs fichiers zip. Pour ce type de rôle, si vous souhaitez que tous les fichiers journaux soient décompressés dans un dossier unique, utilisez un outil qui peut décompresser en bloc. Sélectionnez tous les fichiers compressés pour le rôle, puis sélectionnez extraire ici. Tous les fichiers journaux de ce rôle seront décompressés et réunis dans un seul dossier.

  • Un fichier appelé Get-AzureStackLog_Output.log est également créé dans le dossier qui contient les fichiers journaux compressés. Ce fichier est un journal de la sortie de la commande, qui peut être utilisé pour résoudre des problèmes lors de la collection de journaux. Parfois, le fichier journal inclut des entrées PS>TerminatingError qui peuvent être ignorées en toute sécurité, sauf si les fichiers journal attendus sont manquants après les opérations de collecte de journaux.

  • Pour examiner un échec spécifique, les journaux de bord peuvent être nécessaires pour plusieurs composants.

    • Les journaux des événements et du système pour toutes les machines virtuelles d’infrastructure sont collectés dans le rôle VirtualMachines .
    • Les journaux système et des événements pour tous les hôtes sont collectés dans le rôle BareMetal.
    • Les journaux des événements Hyper-V et de cluster de basculement sont collectés dans le rôle Storage.
    • Les journaux d’activité ACS sont collectés dans les rôles Storage et ACS.

Remarque

Des limites de taille et d’âge sont appliquées aux journaux collectés, car il est essentiel de garantir une utilisation efficace de votre espace de stockage et d’éviter d’être submergé par les journaux. Cependant, quand vous diagnostiquez un problème, vous avez parfois besoin de journaux qui n’existent plus en raison de ces limites. Par conséquent, il est vivement recommandé de décharger vos journaux dans un espace de stockage externe (un compte de stockage dans Azure, un appareil de stockage local supplémentaire, etc.) toutes les 8 à 12 heures et de les conserver pendant 1 à 3 mois, en fonction de vos besoins. Vous devez également vous assurer que cet emplacement de stockage est chiffré.

Invoke-AzureStackOnDemandLog

Vous pouvez utiliser l’applet de commande Invoke-AzureStackOnDemandLog pour générer des journaux à la demande pour certains rôles (consultez la liste à la fin de cette section). Les journaux générés par cette applet de commande ne sont pas présents par défaut dans le bundle de journaux que vous recevez lorsque vous exécutez l’applet de commande Get-AzureStackLog . Par ailleurs, il est recommandé de collecter ces journaux seulement quand l’équipe du support Microsoft en fait la demande.

Actuellement, vous pouvez utiliser le paramètre -FilterByRole pour filtrer la collecte de journaux en fonction des rôles suivants :

  • OEM
  • NC
  • SLB
  • Passerelle

Exemple de collecte des journaux de diagnostic à la demande

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

Fonctionnement de la collecte des journaux de diagnostic à l’aide du point de terminaison privilégié

Les outils de diagnostic Azure Stack Hub aident à garantir la simplicité et l’efficacité de la collecte des journaux. Le diagramme suivant montre comment fonctionnent les outils de diagnostic :

Diagramme de flux de travail des outils de diagnostic Azure Stack Hub

Collecteur de traces

Le collecteur de traces est activé par défaut et s’exécute en continu en arrière-plan pour collecter tous les journaux de suivi d’événements pour Windows (ETW) à partir des services de composants Azure Stack Hub. Les journaux de suivi d’événements Windows sont stockés dans un partage local commun, avec une limite de conservation de cinq jours. Une fois cette limite atteinte, les fichiers les plus anciens sont supprimés à mesure que de nouveaux fichiers sont créés. La taille maximale par défaut autorisée pour chaque fichier est de 200 Mo. Une vérification de taille se produit toutes les 2 minutes, et si le fichier actuel est >= 200 Mo, il est enregistré et un nouveau fichier génère. Il existe également une limite de 8 Go sur la taille totale de fichier générée par session d’événements.

Get-AzureStackLog

Vous pouvez utiliser la cmdlet PowerShell Get-AzureStackLog pour collecter des journaux d’activité à partir de tous les composants dans un environnement Azure Stack Hub. Il les enregistre dans des fichiers zip dans un emplacement défini par l’utilisateur. Si l'équipe de support technique d'Azure Stack Hub a besoin de vos journaux de bord pour résoudre un problème, elle peut vous demander d'exécuter Get-AzureStackLog.

Avertissement

Ces fichiers journaux peuvent contenir des informations d’identification personnelle (PII). Pensez-y avant de publier des fichiers journaux publiquement.

Voici quelques exemples de types de logs collectés :

  • Journaux de déploiement Azure Stack Hub
  • Journaux d’événements Windows
  • Journaux De Panthère
  • Journaux de cluster
  • Journaux de diagnostic de stockage
  • Journaux ETW

Ces fichiers sont collectés et enregistrés dans un partage par Trace Collector. Get-AzureStackLog peut ensuite être utilisé pour les collecter si nécessaire.