rss logo

Script PowerShell pour monitorer l'utilisation du CPU, de la mémoire et du disque

J'utilise un script PowerShell pour surveiller l'utilisation du CPU, de la mémoire et du disque de certains serveurs. Le script s'exécute toutes les minutes via le Planificateur de tâches de Windows et génère un fichier CSV que je peux analyser pour identifier les problèmes de performances.

Script PowerShell

########################### # author : std.rocks # version : 1.0 # date : 2023.05.08 # role : monitor cpu, memory and disk usage # other : Tested on Windows 2019 Server #Récupérer la date $date = Get-Date -Format "yyyy.MM.dd_H:m" #Le script enregistrera les résultats dans le dossier C:\Monitoring\ et dans un fichier au format : YYYY.MM_monitor_result.csv $csv_file = "C:\Monitoring\" + $(Get-Date -Format "yyyy.MM_") + "monitor_result.csv" ##### #CPU# ##### #Note : Utiliser la commande "Get-Counter -ListSet *" pour afficher tous les compteurs disponibles #Obtenir les informations sur le cpu #FR : $cpu = (Get-Counter '\Processeur(_Total)\% temps processeur').CounterSamples.CookedValue #EN : #$cpu = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue $cpu = [math]::round($cpu,2) ######## #MEMORY# ######## #Obtenir les informations sur la mémoire #FR : $mem = (Get-Counter '\mémoire\mégaoctets disponibles').CounterSamples.CookedValue #EN : #$mem = (Get-Counter '\Memory\Available MBytes').CounterSamples.CookedValue ###### #DISK# ###### #Get every C: disk Infos $disk = (Get-WmiObject Win32_PerfRawData_PerfDisk_LogicalDisk | Where-Object { $_.Name -like "C*"}) $disk_queue = $disk.CurrentDiskQueueLength $DBytes = $disk.DiskBytesPerSec $DRead = $disk.DiskReadBytesPerSec $DWrite = $disk.DiskWriteBytesPerSec #Create csv file if (!$(Test-Path -Path $csv_file)) { #Si le fichier n'existe pas, le créer en ajoutant les colonnes csv 'date,cpu,mem,disk_kbytes,disk_reads,disk_writes,disk_queue' | Out-File -Encoding utf8 $csv_file } else { #Sinon ajouter les données collectées $date + "," + $cpu.ToString().replace(",",".") + "," + $mem.ToString() + "," + ($DBytes /1000) + "," + ($DRead /1000) + "," + ($DWrite /1000) + "," + $disk_queue | Out-File -Encoding utf8 $csv_file -Append }

Cliquez sur le lien pour exécuter le script périodiquement via le planificateur de tâches Windows.

Résultat

En utilisant le fichier CSV généré, nous pourrons créer de beaux graphiques de ce type.

Feuille de calcul Cal avec des graphiques représentants l'utilisation cpu et mémoire.
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

contact mail address