Dans cet article je vais vous présenter un rapport Log Analytics permettant de monitorer les postes ayant eu des BSOD au cours des 30 derniers jours.
Que souhaitons-nous ?
Dans Log Analytics, nous voulons les éléments ci-dessous :
- Nombre de BSOD par modèles
- Nombre de BSOD par version du BIOS
- Nombre de BSOD par fabricant
- Nombre de BSOD par système d'exploitation
- Nombre de BSOD par date
- Tous les BSOD pour un appareil spécifique
- Lien vers les logs des appareils (au cours des 15 derniers jours)
- Top 10 des appareils avec BSOD
- Détails des appareils
Dans ce rapport, vous pourrez obtenir beaucoup d'informations sur les BSOD.
Vous pourrez par exemple obtenir les 10 appareils avec le plus de BSOD au cours des 30 derniers jours.
L'onglet Détails vous donnera la date et le code du dernier BSOD pour chaque appareil, mais également tous les BSOD (date et code) pour un nom d'appareil spécifique.
L'avantage de la solution est que vous aurez également accès aux logs de chaque appareil qui a eu un ou des BSOD au cours du mois dernier.
La solution
Nous utiliserons PowerShell et Azure Automation.
Nous allons procéder comme ci-dessous :
1. Créer un script dans Azure Automation
2. Le script récupère les appareils avec BSOD
3. Le script récupère tous les BSOD pour un appareil spécifique
4. Le script envoie les données dans Log Analytics
Obtenir les logs BSOD des appareils
Le rapport vous aide à résoudre les problèmes liés aux appareils en accédant directement aux lgs via le rapport Log Analytics.
Pour chaque appareil ayant eu un BSOD, vous trouverez une colonne avec le lien vers les logs des appareils sur SharePoint.
Pour obtenir les logs des appareils, il faudra aupréalable créer un script dans la partie Proactive Remediation qui téléchargera les journaux sur SharePoint lorsqu'il détectera un BSOD.
Vous pouvez retrouver ici mon article à ce sujet.
Vous accéderez alors aux logs ci-dessous directement via le rapport :
- Tous les fichiers .dmp
- Date de dernier reboot
- Liste des services
- Liste des correctifs installés
- Liste des pilotes
- Liste des processus
Vous récupérerez également le contenu du journal des événements des 15 derniers jours pour les journaux suivants :
- System
- Applications
- Security
- Kernel-Power
- Kernel-PnP/Driver Watchdog
- Kernel-PnP
- Kernel-LiveDump
- Kernel-ShimEngine
- Kernel-Boot
- Windows-Kernel-IO
A quoi ressemble le rapport ?
Le classeur est divisé en deux onglets :
- Resume : affiche le graphique avec le nombre de BSOD
- Détails : affiche les détails du BSOD
Onglet Resume
Nombre de BSOD par modèles
Nombre de BSOD par version du BIOS
Nombre de BSOD par fabricant
Nombre de BSOD par système d'exploitation
Nombre de BSOD par date
Nombre de BSOD par code d'erreur
Onglet Détails
Tous les BSOD pour un appareil spécifique au cours des 30 derniers jours
Lien vers les logs des appareils (au cours des 15 derniers jours)
Top 10 des appareils avec BSOD
Il existe également 2 filtres vous permettant de filtrer les détails sur différentes choses:
- Filtrer sur le nom de l'appareil
- Filtrer sur les modèles
Télécharger le rapport
Cliquez sur l'image GitHub ci-dessous pour obtenir tous les fichiers.
Les fichiers ci-dessous sont disponibles :
- Runbook_script.ps1 : script d'automatisation Azure
- Assign_permissions.ps1 : ajouter des autorisations sur le compte
- Workbook.json : fichier de classeur JSON
Comment utiliser le script ?
Configuration des logs SharePoint
Le script permettant d'envoyer tous les BSOD à Log Analytics s'appelle Runbook_script.ps1 et est disponible sur le lien GitHub.
La première étape consiste à créer une correction proactive qui détectera les BSOD sur les appareils et enverra les journaux à SharePoint.
Si vous souhaitez utiliser cette partie, définissez la variable $Use_SharePoint_Logs sur $True
Sinon, réglez-le sur $False
Si vous souhaitez utiliser cette fonctionnalité, vous devez configurer les variables ci-dessous :
- $ClientID = "ID client de l'application SharePoint"
- $Secret = "Secret de l'application SharePoint"
- $Site_URL = "URL du site SharePoint"
- $Folder_Location = "Dossier SharePoint où envoyer les journaux"
Informations d'analyse des journaux
Afin de créer ce rapport, nous devrons ajouter des informations relatives à l'espace de travail Log Analytics dans le script PS1.
Voir ci-dessous les informations requises :
- ID wo workspace
- Clé primaire
Pour obtenir ces informations, accédez à Log Analytics Workspace > Gestion des agents
Vous trouverez à la fois l'ID de l'espace de travail et la clé primaire.
Ensuite nous procéderons comme ci-dessous :
1. Ouvrez le fichier Runbook_script.ps1
2. Remplissez les variables ci-dessous :
- $CustomerID : identifiant de l'espace de travail
- $ShareKey : clé primaire
Compte Azure Automation
Création du compte
1. Allez sur Azure
2. Accédez à Automation account
3. Cliquez sur Create
4. Tapez un nom
5. Choisissez un abonnement
6. Choisissez le groupe de ressources
7. Choisissez votre région
8. Cliquez sur Create
Ajout d'autorisations
Une fois l'identité managée configurée, une nouvelle application d'entreprise sera créée.
Ensuite, vous devez ajouter des autorisations pour pouvoir effectuer des actions.
Les autorisations requises sont les suivantes :
- DeviceManagementConfiguration.Read.All
- DeviceManagementManagedDevices.Read.All
Pour ajouter cette autorisation, vous devrez utiliser PowerShell, cela ne peut pas être fait via le portail.
Pour cela, utilisez le script Assign_permission.ps1 sur mon dépôt GitHub.
Il vous suffit de remplir les variables ci-dessous :
- $TenantID : votre identifiant de locataire
- $DisplayNameOfMSI : nom de votre compte d'automatisation
Ajout de modules
Si vous souhaitez utiliser les logs des postes sur SharePoint, vous devrez ajouter un module.
Pour cela nous allons procéder comme ci-dessous :
1. Allez dans votre Azure Automation
2. Cliquez sur la galerie de modules
3. Rechercher : pnp.powershell
4. Cliquez sur pnp.powershell
5. Cliquez sur Import
6. Cliquez sur OK
Création d'un Runbook
1. Allez dans Runbooks
2. Cliquez sur + Create a runbook
3. Tapez un nom
4. Dans le type Runbook, sélectionnez PowerShell
5. Cliquez sur Create
Ajouter un script dans Runbook
Le script runbook se trouve dans les sources téléchargées
Son nom est : Runbook_script.ps1
Tester le Runbook
1. Cliquez sur volet Test
2. Cliquez sur Start
Publier le Runbook
1. Accédez à votre Runbook
2. Cliquez sur Edit
3. Cliquez sur Publish
4. Cliquez sur Yes
Planifier le Runbook
1. Accédez à votre Runbook
2. Cliquez sur Schedules
3. Cliquez sur + Add a schedule
4. Cliquez sur Link a schedule to your runbook
5. Cliquez sur + Add a schedule
6. Saisissez un nom
7. Dans Récurrence, sélectionnez Recuring
8. Cliquez sur Create
Rapport Log Analytics
Dans cette partie, nous ajouterons le rapport.
Le rapport peut être téléchargé sur GitHub.
Le rapport est : Workbook.json
Pour l'ajouter, procédez comme suit :
1. Accédez au portail Azure
2. Allez dans Log Analytics workspace
3. Aller dans Workbook
4. Cliquez sur New
5. Allez dans Advanced editor
6. Supprimer tout le contenu
7. Allez sur le lien GitHub, ici
8. Cliquez sur le bouton copier comme ci-dessous :
9. Cliquez sur Apply
10. Cliquez sur Done editing puis sur Save
0 Commentaires