La surveillance continue garantit que vos optimisations restent efficaces et aide à identifier de nouveaux problèmes de performance avant qu'ils n'affectent les utilisateurs.
Installez Windows Admin Center pour une surveillance centralisée :
# Télécharger et installer Windows Admin Center
$wacUrl = "https://aka.ms/WACDownload"
$wacPath = "$env:TEMP\WindowsAdminCenter.msi"
Invoke-WebRequest -Uri $wacUrl -OutFile $wacPath
Start-Process msiexec.exe -ArgumentList "/i $wacPath /quiet" -Wait
Créez des ensembles de collecteurs de données de compteurs de performance personnalisés :
# Créer un nouvel ensemble de collecteurs de données pour la surveillance du serveur
$dataCollectorSet = New-Object -ComObject Pla.DataCollectorSet
$dataCollectorSet.DisplayName = "Surveillance de la performance du serveur"
$dataCollectorSet.Duration = 86400 # 24 heures
$dataCollectorSet.Subdirectory = "ServerPerf"
$dataCollectorSet.Commit("ServerPerf", $null, 0x0003)
Configurez un script de surveillance basé sur PowerShell pour les métriques critiques :
# Créer un script de surveillance
$monitorScript = @'
$counters = @(
"\Processor(_Total)\% Processor Time",
"\Memory\Available MBytes",
"\PhysicalDisk(_Total)\% Disk Time",
"\Network Interface(*)\Bytes Total/sec"
)
$samples = Get-Counter -Counter $counters -SampleInterval 60 -MaxSamples 1440
$samples | Export-Counter -Path "C:\PerfLogs\DailyPerf_$(Get-Date -Format 'yyyyMMdd').blg"
'@
$monitorScript | Out-File -FilePath "C:\Scripts\DailyMonitoring.ps1" -Encoding UTF8
Créez une tâche planifiée pour la surveillance automatisée :
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\DailyMonitoring.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At "12:00AM"
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName "Surveillance quotidienne de la performance" -Action $action -Trigger $trigger -Settings $settings -RunLevel Highest
Configurez la surveillance du journal des événements Windows pour les événements liés à la performance :
# Surveiller les événements système critiques
Get-WinEvent -FilterHashtable @{LogName='System'; Level=1,2,3; StartTime=(Get-Date).AddHours(-24)} |
Select-Object TimeCreated, Id, LevelDisplayName, Message |
Export-Csv -Path "C:\Logs\SystemEvents_$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation
Astuce pro : Configurez des alertes par e-mail en utilisant PowerShell et SMTP lorsque des seuils critiques sont dépassés. Créez une ligne de base pendant les opérations normales, puis alertez lorsque les métriques dépassent 150 % des valeurs de référence.
Créez une ligne de base de performance pour la comparaison :
# Capturer les données de performance de référence
$baseline = Get-Counter -Counter $counters -SampleInterval 5 -MaxSamples 720 # 1 heure de référence
$baseline | Export-Counter -Path "C:\PerfLogs\Baseline_$(Get-Date -Format 'yyyyMMdd').blg"
Vérification : Vérifiez que les tâches planifiées s'exécutent avec Get-ScheduledTask -TaskName "Surveillance quotidienne de la performance" et vérifiez que les fichiers journaux sont créés dans le répertoire C:\PerfLogs.