Envoyer des journaux de diagnostic Azure Stack Hub à l’aide du point de terminaison privilégié
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
Collecter 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 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>"
Notes
Cette procédure est utile pour le chargement des journaux. Même si vous n’avez pas de partage SMB accessible ou d’accès à Internet, vous pouvez créer un compte de stockage d’objets blob sur votre système Azure Stack Hub pour y transférer les journaux, puis utiliser votre client pour récupérer ces journaux.
Pour générer le jeton SAS du compte de stockage, les autorisations suivantes sont nécessaires :
- Accès au service Stockage Blob.
- Accès au type de ressource Conteneur.
Pour générer une valeur d’URI de signature d’accès partagé à utiliser pour le paramètre
-OutputSasUri
, effectuez ces étapes :- Créez un compte de stockage en suivant les étapes de cet article.
- Ouvrez une instance de l’Explorateur Stockage Azure.
- Connectez-vous au compte de stockage créé à l’étape 1.
- Accédez à Conteneurs d’objets Blob dans Services de stockage.
- Sélectionnez Créer un conteneur.
- Cliquez avec le bouton droit sur le nouveau conteneur, puis cliquez sur Obtenir une signature d’accès partagé.
- Sélectionnez une Heure de début et une Heure de fin valides, selon vos besoins.
- Pour les autorisations nécessaires, sélectionnez Lecture, Écriture et Liste.
- Sélectionnez Create (Créer).
- Vous obtenez une signature d’accès partagé. Copiez la partie URL et spécifiez-la pour le paramètre
-OutputSasUri
.
Considérations relatives aux paramètres
Les paramètres OutputSharePath et OutputShareCredential sont utilisés pour stocker les journaux d’activité 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 journaux d’activité 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. Il est défini par défaut sur 150 (2,5 heures).
La collecte de journaux de fichiers de vidage est désactivée par défaut. Pour l’activer, utilisez le paramètre booléen 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
ACSMonitoringService
ACSSettingsService
ACSTableMaster
ACSTableServer
ACSWac
ADFS
ApplicationController
ASAppGateway
AzureBridge
AzureMonitor
BareMetal
BRP
CA
CacheService
Calcul
IPC
CRP
DeploymentMachine
DiskRP
Domain
ECE
EventAdminRP
EventRP
ExternalDNS
FabricRing
FabricRingServices
FirstTierAggregationService
FRP
Passerelle
HealthMonitoring
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
Environnement PXE
QueryServiceCoordinator
QueryServiceWorker
SeedRing
SeedRingServices
SLB
SQL
SRP
Stockage
StorageController
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.
Les journaux d’activité de chaque rôle se trouvent à l’intérieur de fichiers zip individuels. Selon leur taille, les journaux d’activité d’un rôle qui sont collectés peuvent être divisés en plusieurs fichiers zip. Pour ce type de rôle, si vous voulez disposer de tous les fichiers journaux décompressés dans un même dossier, utilisez un outil qui peut effectuer cette opération en bloc. Sélectionnez tous les fichiers compressés du rôle, puis sélectionnez Extraire ici. Tous les fichiers journaux de ce rôle sont décompressés dans un même dossier fusionné.
Un fichier nommé 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, sauf si des fichiers journaux attendus sont manquants après l’exécution de la collecte des journaux.Pour examiner un échec spécifique, vous aurez peut-être besoin des journaux d’activité de plusieurs composants.
- Les journaux système et des événements pour toutes les machines virtuelles de l’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.
Notes
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, nous vous recommandons vivement de décharger vos journaux dans un espace de stockage externe (un compte de stockage dans Azure, un dispositif 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 aussi vérifier que l’emplacement de ce stockage est chiffré.
Invoke-AzureStackOnDemandLog
Vous pouvez utiliser l’applet de commande Invoke-AzureStackOnDemandLog et générer des journaux à la demande pour certains rôles (voir 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 lot de journaux que vous recevez quand 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 de 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 illustre le fonctionnement des outils de diagnostic :
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 d’activité de suivi d’événements pour Windows (ETW) à partir des services composants d’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 sont créés. Par défaut, la taille maximale autorisée pour chaque fichier est de 200 Mo. Une vérification de la taille se produit toutes les deux minutes ; si le fichier actuel a une taille supérieure ou égale (>=) à 200 Mo, il est enregistré et un nouveau fichier est généré. Il existe également une limite de 8 Go portant sur la taille totale des fichiers générés 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. Elle les enregistre dans des fichiers zip à un emplacement défini par l’utilisateur. Si l’équipe de support technique Azure Stack Hub a besoin de vos journaux d’activité pour résoudre un problème, elle peut vous demander d’exécuter l’applet de commande Get-AzureStackLog.
Attention
Ces fichiers journaux peuvent contenir des informations d’identification personnelle. Pensez-y avant de publier des fichiers journaux publiquement.
Voici quelques exemples de types de journaux collectés :
- Journaux d’activité de déploiement d’Azure Stack Hub
- Journaux des événements Windows
- Journaux d’activité Panther
- Journaux d’activité de cluster
- Journaux de diagnostics de stockage
- Journaux d’activité ETW
Ces fichiers sont collectés et enregistrés dans un partage par le Collecteur de traces. Vous pouvez ensuite utiliser la cmdlet Get-AzureStackLog pour les collecter en cas de nécessité.