Comment collecter des métriques Windows Server 2012 – Bien choisir son serveur d impression
Cet article fait partie 2 d'une série de 3 articles sur la surveillance de la santé et des performances du système d'exploitation Windows. La partie 1 détaille les compteurs de performance Windows, les événements et les services à surveiller; cet article couvre la collecte de données avec des outils natifs; et la troisième partie explique comment surveiller Windows avec Datadog. Pour un webinaire approfondi et une session de questions-réponses basée sur cette série, consultez ce diaporama et cette vidéo.
Windows propose un certain nombre d'outils natifs pour collecter toutes les métriques et tous les événements mentionnés dans la première partie de cette série. Dans de nombreux cas, Windows propose plusieurs outils pour la tâche. Dans cet article, nous aborderons quelques manières d'accéder aux métriques et aux données de performance Windows, à l'aide des outils fournis avec Windows Server 2012.
Bien que de nombreux outils intégrés à Windows Server 2012 permettent de surveiller la santé et les performances du système, nous allons nous concentrer sur un sous-ensemble limité dans cet article.
Outils non graphiques:
Outils d'interface graphique:
Sommaire
Powershell
Powershell est l’un des moyens les plus dynamiques et les plus puissants d’obtenir des informations sur un système Windows (et, avec Powershell disponible sur d’autres plates-formes, d’autres systèmes également).
Les commandes Powershell sont appelées applets de commande et respectent une convention de dénomination stricte Verb-Noun. Par exemple, Retirer l'objet
est fonctionnellement similaire à rm
sur les systèmes de type Unix. Un didacticiel Powershell dépasse le cadre de cet article, mais Microsoft propose des didacticiels pour les non-initiés.
Tous les indicateurs et événements répertoriés dans la première partie de cette série peuvent être collectés avec Powershell:
L'un des avantages de la collecte de mesures avec Powershell réside dans le fait que vous pouvez choisir entre des données de performance en temps réel pour la vérification ponctuelle ou l'échantillonnage de valeurs de mesure dans le temps pour les tendances historiques (à l'aide de la -MaxSamples
et -SampleInterval
arguments en ligne de commande).
Collecter des mesures de performance avec Powershell à l'aide du Get-Counter
L'applet de commande suit une syntaxe simple:
Get-Counter -Counter
Si vous n'êtes pas sûr d'un nom de propriété, vous pouvez récupérer une liste de toutes les propriétés par classe avec les éléments suivants:
(Get-Counter -ListSet ) .Paths
Par exemple, cette commande affichera toutes les propriétés du Mémoire
classe:
(Get-Counter -ListSet Memory) .Paths
Mesures de la CPU
Pourcentage de temps de traitement | Get-Counter -Counter " Processor (*) % Processor Time" |
ContextSwitchesPersec | Get-Counter -Counter " Thread (_Total) Commutateurs de contexte / s" |
ProcessorQueueLength | Get-Counter -Counter " System Longueur de la file d'attente du processeur" |
DPCsQueuedPersec | Get-Counter -Counter " Processor (*) DPCs en file d'attente / s" |
Pourcentage de temps privilégié | Get-Counter -Counter " Processor (*) % Time Privileged" |
Pourcentage en pourcentage | Get-Counter -Counter " Processor (*) % DPC Time" |
Pourcentage d'interruption | Get-Counter -Counter " Processor (*) % Interrupt Time" |
Métriques de mémoire
AvailableMBytes | Get-Counter -Counter " Memory Available MBytes" |
CommittedBytes | Get-Counter -Counter " Memory Octets engagés" |
PoolNonpagedBytes | Get-Counter -Counter " Memory Pool Octets non paginés" |
PageFaultsPersec | Get-Counter -Counter " Memory Page Faults / sec" |
PageReadsPersec | Get-Counter -Counter " Memory Page lectures / s" |
PagesInputPersec | Get-Counter -Counter " Memory Pages Input / sec" |
Pourcentage d'utilisation | Get-Counter -Counter " Fichier de pagination (*) % Usage" |
Métriques de disque
Pourcentage d'espace libre | Get-Counter -Counter " Disque logique (*) % d'espace libre" |
Pourcentage d'heure | Get-Counter -Counter " Disque logique (*) % Temps d'inactivité" |
AvgDisksecPerRead | Get-Counter -Counter " Disque logique (*) Disque moyen sec / lu" |
AvgDisksecPerWrite | Get-Counter -Counter " LogicalDisk (*) Avg. Disk sec / Write" |
AvgDiskQueueLength | Get-Counter -Counter " Disque logique (*) Longueur moyenne de la file d'attente du disque" |
DiskTransfersPersec | Get-Counter -Counter " Disque logique (*) Transferts de disque / s" |
CacheBytes | Get-Counter -Counter " Memory Cache Bytes" |
Métrique du réseau
BytesSentPersec | Get-Counter -Counter " Interface réseau (*) Octets envoyés / s" |
BytesReceivedPersec | Get-Counter -Counter " Interface réseau (*) Octets reçus / s" |
SegmentsRetransmisPersec | Get-Counter -Counter " TCPv4 Segments retransmis / s" |
Événements
Vous pouvez également interroger le journal des événements avec Powershell. La requête suit ce format:
Get-EventLog -LogName `
-EntryType `
-Après | Où-Object $ _. EventID -eq `
| Liste de format
Cette requête appelle le Get-EventLog
cmdlet, avec le nom du journal, le type d’entrée et la date de début comme paramètres. La sortie de cette applet de commande est redirigée vers Où-objet
, une applet de commande qui filtre la valeur transmise ($ _
) pour les objets dont les EventIDs (.EventID
) sont égaux à (-eq
) le EventID que nous recherchons. La sortie est enfin canalisée vers Liste de format
qui imprime la sortie dans un format lisible par l’homme.
Par exemple, cette requête affichera tous les événements d'échec d'audit de sécurité avec l'ID d'événement 4625 (échec de la connexion) à partir du journal de sécurité qui s'est produit après le 18/10/2016:
Get-EventLog -LogName Security -EntryType FailureAudit -Après 10/18/2016 | Où-Object $ _. EventID -eq 4625 | Liste de format
Catégorie: (12544)
Numéro de catégorie: 12544
ReplacementStrings: S-1-0-0, -, -, 0x0 ...
Source: Microsoft-Windows-Security-Auditing
TimeGenerated: 10/19/2016 3:21:32 PM
TimeWritten: 10/19/2016 3:21:32 PM
Nom d'utilisateur :
Index: 1305543
EntryType: FailureAudit
InstanceId: 4625
Message: Un compte n'a pas réussi à se connecter.
Assujettir:
ID de sécurité: S-1-0-0
Nom du compte: -
Domaine du compte: -
ID de connexion: 0x0
Type de connexion: 3
Compte pour lequel l'ouverture de session a échoué:
ID de sécurité: S-1-0-0
Nom du compte: MATT
Domaine du compte:
Informations d'échec:
Raison de l'échec: %% 2313
Statut: 0xc000006d
Sous statut: 0xc0000064
Prestations de service
Tous les services énumérés dans la première partie de cette série peuvent être collectés via Powershell. La requête suit ce format:
Get-Service | où $ _. DisplayName -eq "Windows Update"
La commande ci-dessus affiche l'état du service Windows Update:
Nom de statut Nom d'affichage
------ ---- -----------
Arrêté wuauserv Windows Update
WMI + Powershell
WMI (Windows Management Instrumentation) est un ensemble d'extensions qui fournit une interface normalisée à travers laquelle les composants instrumentés peuvent être interrogés pour obtenir des informations. WMI a été introduit pour faciliter la gestion des ordinateurs Windows, en fournissant une interface cohérente entre les versions de système d'exploitation, tout en fonctionnant aux côtés d'autres interfaces de gestion populaires telles que SNMP ou DMI (Desktop Management Interface).
L’introduction de Powershell (et le Get-WmiObject cmdlet en particulier) a rendu WMI beaucoup plus facile à utiliser. Auparavant, l'accès aux informations système via WMI nécessitait l'utilisation d'un passe-partout en VBScript ou d'un autre langage de script. Mais avec Powershell, WMI peut être interrogé sur une seule ligne.
Si vous ne faites que commencer à utiliser la surveillance Windows, Powershell est généralement un moyen plus simple d’accéder aux métriques de performance. Mais comme WMI est encore largement utilisé, nous avons inclus ici les commandes WMI équivalentes par souci d’exhaustivité. Vous pouvez commencer à parcourir toutes les classes WMI disponibles en ouvrant une fenêtre Powershell et en exécutant les opérations suivantes:
$ name = "Win32_perfformatteddata"
$ WMIClasses = Get-WmiObject -List | Where-Object $ _. Name -Match $ name
foreach ($ classe dans $ WMIClasses)
$ class.Name
L'exécution des commandes ci-dessus entraînera une sortie substantielle, tronquée et reproduite ci-dessous:
[...]
Win32_PerfFormattedData_PerfDisk_LogicalDisk
Win32_PerfFormattedData_PerfDisk_PhysicalDisk
Win32_PerfFormattedData_PerfNet_ServerWorkQueues
Win32_PerfFormattedData_PerfOS_Cache
Win32_PerfFormattedData_PerfOS_Memory
Win32_PerfFormattedData_PerfOS_Objects
Win32_PerfFormattedData_PerfOS_PagingFile
Win32_PerfFormattedData_PerfOS_Processor
Win32_PerfFormattedData_PerfOS_System
Vous pouvez reconnaître certains noms des commandes Powershell, tels que Win32_PerfFormattedData_PerfDisk_LogicalDisk
. Pour répertorier les compteurs de performance pour toute la classe LogicalDisk, vous pouvez exécuter une commande telle que:
Get-WmiObject -Query "Select * from Win32_perfformatteddata_perfdisk_LogicalDisk"
qui produira des compteurs pour tous les disques logiques sur le serveur:
[...]
AvgDiskBytesPerRead: 0
AvgDiskBytesPerTransfer: 0
AvgDiskBytesPerWrite: 0
AvgDiskQueueLength: 0
AvgDiskReadQueueLength: 0
AvgDisksecPerLire: 0
AvgDisksecPerTransfer: 0
AvgDisksecPerWrite: 0
AvgDiskWriteQueueLength: 0
CurrentDiskQueueLength: 0
DiskBytesPersec: 0
DiskReadBytesPersec: 0
DiskReadsPersec: 0
DiskTransfersPersec: 0
DiskWriteBytesPersec: 0
DiskWritesPersec: 0
FreeMegabytes: 100400
Nom: C:
PercentDiskReadTime: 0
Pourcentage de temps disque: 0
PercentDiskWriteTime: 0
Pourcentage d'espace libre: 77
Pourcentage d'heure: 96
Le tableau ci-dessous répertorie les requêtes WMI permettant de collecter toutes les métriques de la première partie de cette série.
CPU | Get-WmiObject -Query "Sélectionnez * dans Win32_perfformatteddata_perfos_processor" Get-WmiObject -Query "Sélectionnez * dans Win32_perfformatteddata_perfproc_thread" |
Mémoire | Get-WmiObject -Query "Sélectionnez * dans Win32_perfformatteddata_perfos_memory" Get-WmiObject -Query "Sélectionnez * dans Win32_perfformatteddata_perfos_pagingfile" |
Disque | Get-WmiObject -Query "Sélectionnez * dans Win32_perfformatteddata_perfdisk_logicaldisk" Get-WmiObject -Query "Sélectionnez * dans Win32_perfformatteddata_perfos_memory" |
Réseau | Get-WmiObject -Query "Select * from Win32_perfformatteddata_tcpip_networkinterface" Get-WmiObject -Query "Sélectionnez * dans Win32_perfformatteddata_tcpip_tcpv4" |
Analyseur de performances (suivi des compteurs)
La scrutation des données de performance avec WMI ou Powershell est utile pour la collecte de données à l'aide de scripts ou d'autres moyens automatisés. Mais sans moyens de visualisation de ces données, il peut être difficile de déceler les tendances et les problèmes d'un océan de chiffres.
L'Analyseur de performances Windows fournit une interface intégrée permettant de représenter graphiquement les compteurs de performances, en temps réel ou à partir de journaux de données historiques. Vous pouvez également représenter graphiquement les données des hôtes locaux et distants. Les compteurs de performance sont organisés par classe et ont des noms lisibles par l'homme ainsi que des descriptions métriques détaillées.
Moniteur de ressources
Windows Resource Monitor est très similaire au gestionnaire de tâches bien connu, mais la quantité d'informations qu'il diffère diffère. Le moniteur de ressources est un très bon point de départ pour une enquête; il peut faire apparaître presque toutes les mesures répertoriées dans la première partie de cette série. Son principal atout réside dans le fait qu’il fournit une interface graphique en temps réel permettant d’accéder aux métriques du processeur, de la mémoire, du disque et du réseau, ce qui vous permet de voir d’un coup d’œil quel processus particulier accapare le disque, par exemple.
Moniteur de fiabilité
Le Moniteur de fiabilité Windows est une interface graphique qui fait apparaître les événements système et les organise de manière chronologique et par gravité.
Dans cette liste, vous pouvez cliquer avec le bouton droit de la souris sur un événement spécifique et rechercher une solution au problème, afficher une solution au problème ou afficher les détails techniques pour plus d'informations sur l'état du système au moment de l'événement. En sélectionnant «Afficher les détails techniques», vous obtiendrez des informations plus détaillées sur le problème, telles que le nom de l'événement, l'endroit où l'erreur s'est produite, etc.
En sélectionnant «Rechercher une solution», vous serez invité à envoyer les détails de l'événement à Microsoft pour analyse. Si vous êtes chanceux, votre problème peut avoir une solution connue et «Afficher la solution» ne sera plus estompé; cliquez dessus pour ouvrir la solution (sur le site Web de Microsoft) dans votre navigateur.
Snap-in de service
Le composant logiciel enfichable Gestion des services (services.msc
) est un outil indispensable qui fournit aux administrateurs une interface graphique pour surveiller et gérer les services sur des machines Windows.
Avec les lignes triables, vous pouvez voir en un coup d’œil l’état, le type de démarrage et les privilèges d’exécution de tous les services de votre système.
Cliquez avec le bouton droit sur n'importe quel service et sélectionnez Propriétés vous donnera plus de détails sur le service sélectionné, y compris une liste de ses dépendances et des services qui en dépendent.
Enfin, vous pouvez également définir des alertes en cas de défaillance du service en sélectionnant Récupération onglet et en changeant les actions d’échec en premier, en second ou en suite en «Exécuter un programme» et en définissant le programme comme script de messagerie ou autre réponse.
Gestionnaire de serveur Windows
À l'instar du moniteur de fiabilité, Server Manager affiche les informations provenant de sources disparates dans un seul volet.
Avec le Gestionnaire de serveur, vous pouvez accéder à une vue d'ensemble de haut niveau de la consommation de ressources, de l'état du service et des événements, en agrégeant les informations des hôtes locaux et distants.
Le Gestionnaire de serveur comprend également Windows Best Best Practices Analyzer. BPA (Best Practices Analyzer) de Windows Server est un outil unique à Windows Server 2008 R2 et Windows Server 2012 R2. BPA analyse les rôles activés sur votre hôte et fournit des recommandations basées sur les meilleures pratiques de gestion de serveur Windows. Il peut identifier les problèmes de configuration, de sécurité, de performances, de stratégies, etc.
Gestionnaire des tâches
Sur une machine locale, le vénérable gestionnaire de tâches fournit un accès immédiat à une vue de ce qui se passe sous le capot. Outre une liste de processus en cours d'exécution, le gestionnaire de tâches comprend également des onglets contenant davantage d'informations sur les performances du matériel et les services en cours d'exécution.
Mention honorable: Process Explorer
Dans la même veine que le gestionnaire de tâches est Explorateur de processus, un outil tiers de la suite polyvalente Sysinternals. Comme il n’est pas inclus dans Windows Server 2012, nous n’entrerons pas ici dans les détails. Cependant, il vaut la peine de le mentionner comme une alternative plus complète au gestionnaire de tâches intégré.
Certaines de ses caractéristiques remarquables incluent:
- afficher les DLL et les descripteurs chargés / ouverts par processus
- modifier dynamiquement la priorité du processus
- soumettre le hachage du processus exécutable à VirusTotal.com pour analyse
- visualiseur interactif de dépendance (voir ci-dessous)
De la collecte à l'action
Dans cet article, nous avons présenté différentes manières de faire apparaître des métriques, des événements et des informations de service Windows Server 2012 R2 à l'aide d'outils simples et légers déjà disponibles sur votre système.
Pour surveiller les systèmes de production, vous souhaiterez probablement une solution dynamique qui ingérera non seulement les métriques de performances de Windows Server, mais également celles de toutes les technologies de votre pile.
Chez Datadog, nous avons développé des intégrations avec plus de
350
technologies, y compris Windows, afin de rendre votre infrastructure et vos applications aussi observables que possible.
Pour plus de détails, consultez notre guide sur la surveillance des métriques de performance de Windows Server 2012 R2 avec Datadog ou commencez immédiatement avec un essai gratuit.
Commentaires
Laisser un commentaire