Analyser automatiquement les performances de vos contrôleurs de domaine

Envoyer Imprimer PDF

Sommaire

 


Introduction

Pour analyser les performances de vos contrôleurs de domaine il existe le collecteur de données « Diagnostics Active Directory ». Il est disponible par défaut sur Windows Server 2008 et est  donc particulièrement utile pour identifier des éventuels problèmes de performances.

Je vais donc dans un premier temps vous montrer à quoi cela ressemble et comment l’utiliser. Ensuite, on ira un peu plus loin afin que vous le lanciez automatiquement et au moment le plus opportun.

 

 

Le collecteur de données « Diagnostics Active Directory »

Introduit sous Windows Server 2003 et connu sous le nom de « Server Performance Advisor » (http://www.microsoft.com/en-us/download/details.aspx?id=15506), il est désormais intégré nativement sous Windows Server 2008 sous la forme d’un collecteur de données et est donc appelé « Diagnostics Active Directory ». Il permet de faire une collecte de données exhaustive sur le contrôleur de domaine et de générer un rapport au format HTML.

De plus, le rapport est particulièrement intéressant car Microsoft à créer un ensemble de règles permettant de mettre en relief ce qui ne va pas (exemple : un manque de mémoire, une requête LDAP malformée ou/et consommatrice…). Il n’est donc pas nécessaire de se creuser la tête pendant des heures sur l’analyse de données.

Pour générer donc un rapport de diagnostiques il faut premièrement lancer la console « Analyseur de performances ». Pour cela, vous pouvez lancer depuis « Démarrer | Exécuter » la commande « perfmon.msc ».

 

Depuis la console « Analyseur de performances », développez l’arborescence « Ensemble de collecteurs de données > Système » et à l’aide d’un clic droit sur  « Active Directory Diagnostics (Diagnostics Active Directory) », sélectionnez « Démarrer ».

 

A la fin de la collecte, un rapport de diagnostiques est disponible depuis « Rapports > Système > Active Directory Diagnostics ».

 

Par défaut, la collecte dure 5 minutes et vous ne pouvez pas la modifier. Si vous voulez l’adapter à vos besoins, alors la seule solution va être de créer un modèle de données personnalisé (dit « utilisateur ») s’appuyant sur le modèle existant (dit « système »). Toutefois, je ne vais pas rentrer plus dans le détail car ce n’est pas l’objet de l’article mais si vous voulez plus d’information sur le sujet, je vous propose déjà l’article suivant : Son of SPA: AD Data Collector Sets in Win2008 and beyond (http://blogs.technet.com/b/askds/archive/2010/06/08/son-of-spa-ad-data-collector-sets-in-win2008-and-beyond.aspx).

Maintenant revenons à nos moutons… Il est particulièrement intéressant de disposer d’un outil de la sorte mais faut-il encore que la collecte soit réalisée au bon moment. L’objectif étant de pouvoir identifier clairement l’origine d’une quelconque défaillance. Et pour cela, il faut que le déclenchement se fasse de manière automatique.

 

 

Présentation de la solution

Généralement, les problèmes de performances sur un contrôleur de domaine se traduisent par une utilisation excessive des ressources CPU par le processus LSASS. Nous allons donc définir une alerte de performance sur la consommation processeur de LSASS qui va, après un certain seuil, déclencher le collecteur de données « Diagnostics Active Directory ».

Pour améliorer la pertinence de notre collecte, l’alerte de performance ne va pas déclencher automatiquement le collecteur de données. Le petit plus de l’article est de passer par le biais d’un script qui prendra en charge le déclenchement de la collecte uniquement après plusieurs alertes.

Prenons un exemple. SCOM, L’outil de supervision Microsoft,  génère par défaut une alerte après avoir collecté, 5 fois d’affilé et sur une fréquence de 5 min, une utilisation du processus LSASS excédant 80% du CPU. Du coup si nous voulons reproduire le même comportement, nous devons enregistrer les différentes alertes remontées par notre alerte de performance durant une période précise. Grâce à ce mécanisme, je vais pouvoir démarrer ma collecte après X alertes sur une période de temps T.

 


Configuration du script

Le script est assez simple. Comme nous le disions un peu plus haut, il va contrôler le nombre d’alertes généré durant une certaine période, et si le seuil est atteint, il lancera le collecteur de données « Diagnostics Active Directory ».

Il est disponible depuis le lien Microsoft Technet : Starting Data Collector Set with PowerShell (managing timeline and sampling) (http://gallery.technet.microsoft.com/scriptcenter/Starting-Data-Collect-Set-1efc0013)

Copiez-le dans le répertoire de votre choix et modifiez-le en fonction de vos besoins.

Les paramètres sont :

  • NbSamples : Le nombre d’alertes nécessaire pour le déclenchement de la collecte (valeur par défaut : 5)
  • Duration : La durée de la période en minutes (valeur par défaut : 25)
  • DCSPath : Le nom du collecteur de données (valeur par défaut : « system\Active Directory Diagnostics »)
  • Notify : Activation de la Notification par message électronique. Vous le recevrez si le collecteur est démarré.

 

Si vous activez le paramètre « Notify », il faudra impérativement assigner les bonnes valeurs aux variables suivantes :

  • SmtpServerName : le nom du serveur SMTP
  • SmtpServerPort : le numéro de port du serveur SMTP
  • SmtpEnableSsl : activation du SSL
  • SmtpServerUsername : nom du compte utilisateur pour l’authentification SMTP
  • SmtpServerPassword : mot de passe du compte utilisateur pour l’authentification SMTP
  • SmtpSender : adresse électronique de l’expéditeur
  • SmtpRecipient : adresse électronique de chaque destinataire (si vous comptez ajouter plusieurs expéditeurs alors il faudra ajouter la liste sous forme d’un tableau)

 

Pour votre information, je me suis appuyé sur la configuration de l’alerte SCOM (l’outil de supervision Microsoft) pour définir à quel moment lancer la collecte. En effet, par défaut SCOM est configuré pour déclencher une action après une capture de 5 alertes toutes les 5 minutes.

 

 

Création de la tâche planifiée

La tâche planifiée est nécessaire pour permettre à l’alerte de performance d’interagir avec le script. En tout cas, c’est la seule solution que j’ai trouvée.

Ouvrez le planificateur de tâches et, à l’aide d’un clic droit, sélectionnez « Créer une tâche… ».

 

Entrez un nom pour cette nouvelle tâche (évitez les espaces) et, éventuellement, une description. Au niveau des options de sécurité, vous pouvez utiliser le compte « Système » et spécifier « Exécuter avec les autorisations maximales ».

 

Par contre, nous ne définirons aucun déclencheur. En effet, le déclenchement de la tâche sera réalisé par l’alerte de performance que nous configurons plus tard.

 

Depuis l’onglet « Actions », cliquez sur le bouton « Nouveau… ».

Pour la définition de la nouvelle action :

  • Action : «  Démarrer un programme »
  • Programme/Script : « powershell.exe »
  • Ajouter des arguments (facultatif) : « -ExecutionPolicy Unrestricted –Command ‘CHEMIN_DU_SCRIPT’ –Notify »

 

 

 

 

 

 

 

 

 

Au niveau des autres paramètres, je vous conseillerai à minima de définir  le paramètre « Arrêter la tâche si elle s’exécute plus de » à la valeur « 1 heure ».

 

 

Création de l’alerte de performance

Nous allons maintenant utiliser une alerte de performance en guise de déclencheur pour notre tâche. Notre alerte s’appuiera sur la consommation en processeur du processus LSASS.

Pour cela, il faut passer par la console « Analyseur de performances ». Pour cela, vous pouvez lancer depuis « Démarrer | Exécuter » la commande « perfmon.msc ».

 

Pour créer notre alerte, naviguez jusqu’à « Ensembles de collecteurs de données » et à l’aide d’un clic droit sur « Définis par l’utilisateur », sélectionnez « Nouveau >  Ensemble de collecteurs de données ».

 

Spécifiez le nom de votre alerte de performance. En l’occurrence, j’ai choisi « Alerte Processus LSASS ». Sélectionnez l’option « Créer manuellement (avancé) » et cliquez sur le bouton « Suivant ».

 

Le type de de données à inclure sera « Alerte de compteur de performance ».

 

A l’étape suivante, cliquez sur le bouton « Ajouter… ».

 

Sélectionner le compteur « % temps processeur » sur l’ordinateur local et spécifiez l’instance « lsass ». Cliquez le bouton « Ajouter >> » puis validez.

 

Nous définissons le seuil d’alerte « Au-dessus de 80 ».

 

Notre collecteur de données incluant notre alerte de performance est désormais créée. Il nous reste à préciser l’action à réaliser lorsque que l’alerte est déclenchée. Pour cela, nous allons éditer l’alerte « DataCollector01 » située à l’intérieur de notre de collecteur de données « Alerte Processus LSASS » en cliquant sur « Propriétés » à l’aide d’un clic droit.

 

Depuis l’onglet « Alertes », modifiez la valeur de l’intervalle d’échantillonnage à « 5 Minutes ».

 

Depuis l’onglet « Tâche d’alerte », spécifiez le nom de la tâche planifiée dans le champ « Exécuter cette tâche lorsqu’une alerte est déclenchée : ».

 

La dernière et ultime étape cruciale est le démarrage de la collecte de données pour votre alerte de performance. En effet, il faut que le collecteur soit démarré. Pour cela, fait un clic droit sur votre collecteur de données et sélectionnez l’option « Démarrer ».

 

 

Conclusion

Désormais, en cas de charge prolongé du processus LSASS et en fonction du paramétrage que vous aurez spécifié, le collecteur de données « Diagnostics Active Directory » va se déclencher automatiquement et générer un rapport de performance.

Vous serez désormais en mesure de détecter la cause de vos problèmes de performance !

Mise à jour le Lundi, 28 Avril 2014 08:22