Agence web » Actualités du digital » Comment configurer la surveillance pour alerter sur l'utilisation élevée du système Windows

Comment configurer la surveillance pour alerter sur l'utilisation élevée du système Windows

Perfmon, également connu sous le nom de moniteur de performances, est l'un des outils les plus négligés de Windows. Cet utilitaire a de nombreuses capacités négligées, l'une d'entre elles étant la capacité d'alerter sur diverses conditions métriques. Dans cet article, nous explorons comment utiliser correctement la capacité d'alerte de Perfmon avec une utilisation élevée du processeur.

Qu'est-ce que Perfmon?

Disponible depuis les premiers jours de Windows dans diverses itérations, l'Analyseur de performances est disponible en tant que composant logiciel enfichable MMC pour Windows destiné à aider à surveiller l'utilisation du système et diverses mesures de performances. La vue par défaut au lancement met en évidence quelques domaines différents et des mesures en temps réel.

  • Moniteur de performances – Visualisation en temps réel des métriques
  • Ensembles de collecteurs de données – Collecte définie de données sur un intervalle de temps donné
  • Rapports – Comment afficher les données collectées dans les ensembles de collecteurs de données

Si l'Analyseur de performances n'est pas lancé en tant qu'administrateur, son utilitaire sera limité et vous risquez de ne pas voir les ensembles ou les rapports du collecteur de données.

Affichage des mesures

Lorsque vous cliquez pour la première fois sur l'Analyseur de performances, un graphique linéaire mobile s'affiche. %Processor Time. En soi, cela n'est pas très utile car les données sont une valeur glissante et nous voulons vraiment savoir s'il y a des conditions défavorables.

Vous pouvez ajouter des mesures supplémentaires à ce graphique, en cliquant sur le signe plus vert et en ajoutant d'autres mesures. Gardez à l'esprit que l'échelle de valeurs peut ne pas correspondre entre différents points de données et peut donc être moins utile lorsqu'elle est combinée sur un seul graphique.

Ensembles de collecteurs de données

Les données en temps réel sont utiles, mais pas ce que nous recherchons en fin de compte. Comment pouvons-nous alors alerter sur certaines conditions, dans ce cas, une utilisation élevée du processeur soutenue au fil du temps?

C'est là qu'interviennent les ensembles de collecteurs de données. Après avoir développé les ensembles de collecteurs de données, cliquez avec le bouton droit sur Défini par l'utilisateur → Nouveau → Ensemble de collecteurs de données.

Vous aurez la possibilité de nommer l'ensemble et de créer l'ensemble à partir d'un modèle ou de créer l'ensemble manuellement. Dans ce cas, nous devons créer manuellement notre configuration.

Dans ce cas, nous mettons en place un Alerte de compteur de performances. Cela surveillera un compteur donné, puis nous pourrons indiquer à l'alerte de prendre certaines mesures.

Puisque nous cherchons à surveiller le pourcentage total de CPU, il est très important de choisir la métrique correcte à surveiller. Ici, nous choisissons Processeur → _Total en cliquant sur «Ajouter >>» à côté de l'instance sélectionnée.

Un problème est que vous obtenez tous les Processeur _Total métrique. En fin de compte, nous voulons juste \Processor(_Total)\% Processor Time métrique. Pour supprimer les autres, sélectionnez-les chacun et cliquez sur le bouton Supprimer.

Malheureusement, de la façon dont la suppression fonctionne, vous ne pouvez pas simplement cliquer plusieurs fois sur le bouton de suppression car il ramène l'élément sélectionné en haut à chaque fois. Sélectionnez chaque métrique individuellement et cliquez sur Supprimer.

Nous devons maintenant indiquer au compteur de performances à quel moment l'alerte doit commencer et, dans ce cas, nous cherchons à l'avertir uniquement lorsqu'elle est au-dessus 95.

Enfin, enregistrez et fermez l'ensemble de collecteurs de données.

Configuration des alertes

Avec notre configuration par défaut à l'écart, nous devons maintenant configurer quelle action d'alerte va avoir lieu. Il existe deux façons de définir les alertes, Action d'alerte et Tâche d'alerte. Sélectionnez votre Défini par l'utilisateur → Utilisation élevée du processeur ensemble de collecteurs de données, cliquez avec le bouton droit sur la valeur par défaut DataCollector01 et choisissez Propriétés.

Le moyen le plus simple de démarrer la surveillance des entrées consiste à accéder à l'onglet Action d'alerte et à cocher la case «Enregistrer une entrée dans le journal des événements d'application». Vous avez également la possibilité de démarrer un ensemble de collecteurs de données différent lorsque les critères d'une alerte sont remplis. De cette façon, vous pouvez collecter des journaux supplémentaires si nécessaire. Ici cependant, nous allons simplement enregistrer une entrée.

Configuration d'une tâche d'alerte

C'est bien beau, mais finalement nous n'obtenons pas d'alerte réelle dans ce cas, juste une nouvelle entrée de journal des événements. Dans l'onglet Tâche d'alerte, nous pouvons dire à ce collecteur de données de démarrer une tâche planifiée et d'envoyer certains paramètres, qui peuvent ensuite effectuer les actions d'alerte que nous voulons. Pour que cela fonctionne, nous devons faire deux choses. Créez le script à exécuter et la tâche planifiée elle-même.

Script de journalisation

Voici un script de journalisation très simple. Nous lisons les mesures d'alerte générées par la tâche d'alerte et envoyons ces résultats dans un fichier journal.

HighCPUAlert.ps1

$Date      = $args(0)
$Threshold = $args(1)
$Counter   = $args(2)

$Value = "({0}) {1} {2} | {3}" -F $Date, 'High CPU', $Threshold, $Counter

Add-Content -Value $Value -Path 'C:\HighCPUAlert.log'

Tâche planifiée

Ici, nous devons créer la tâche planifiée qui exécutera réellement le script lors de l'appel par le Data Collector. Nous utilisons PowerShell pour créer la tâche planifiée et utilisons PowerShell 7 en tant qu'exécution, comme indiqué par le pwsh.exe exécutable.

$Params = @{
    "Action"    = New-ScheduledTaskAction -Execute "pwsh.exe" -Argument "-NoProfile -File C:\HighCPUAlert.ps1 $(Arg0)"
    "Principal" = New-ScheduledTaskPrincipal -UserId "LOCALSERVICE" -LogonType ServiceAccount
    "Settings"  = New-ScheduledTaskSettingsSet
}

New-ScheduledTask @Params | Register-ScheduledTask 'HighCPUAlert'

Jusqu'à ce que PowerShell 7 soit officiellement publié, l'exécutable peut être pwsh-preview.exe.

Configuration de la tâche d'alerte

Enfin, nous devons configurer la tâche d'alerte sur le collecteur de données. Pour ce faire, accédez à nouveau aux propriétés de DataCollector01 et entrez les détails suivants.

Nous citons les arguments de la tâche car ils entrent sous forme de chaînes dans PowerShell. Par conséquent, en les citant, nous facilitons la séparation des arguments par index, c'est-à-dire $arg(0) ou $arg(1).

Une fois que vous avez cliqué sur enregistrer, vous pouvez être invité à fournir des informations d'identification, il doit s'agir d'un utilisateur disposant d'un accès administrateur.

Exécution du collecteur de données

En cliquant avec le bouton droit sur le Data Collector Set, High CPU Usage et en sélectionnant Début, vous commencerez le processus de collecte. Si vous surveillez les tâches planifiées, vous verrez la tâche planifiée nouvellement créée s'exécuter périodiquement en fonction de l'intervalle de surveillance et du seuil défini.

Conclusion

En utilisant les outils de surveillance intégrés de Windows, vous pouvez structurer des solutions de surveillance utiles et puissantes autour des utilitaires principaux et de PowerShell. Grâce à cette flexibilité, vous pourrez résoudre presque tous les problèmes pouvant être diagnostiqués via la collecte de données métriques!

★★★★★