Konuyu Açan
#1
PowerShell kullanarak CPU kullanımını sürekli izlemek ve belirli bir eşiğin aşılması durumunda otomatik alarm veya bildirim sistemi kurmak günümüzde sistem yöneticileri ve IT uzmanları için önemli bir ihtiyaç haline geldi. Bu otomasyon, sistemlerin aşırı yüklenmesini önlemek ve performans sorunlarına hızlı çözüm üretmek adına kritik bir adım sağlar.
İlk olarak, PowerShell ile CPU kullanımını gerçek zamanlı izleyebilmek için WMI veya PerformanceCounter sınıflarını kullanabiliriz. Örneğin, aşağıdaki komut, belirli bir zaman diliminde CPU kullanım yüzdesini ölçer:
Bu komut, CPU kullanımını 1 saniyelik aralıklarla 10 örnek alarak raporlar. Otomasyon için bu komutu bir döngüye alıp, sürekli kontrol sağlayabiliriz. Belirlediğiniz eşiğin üzerinde kullanım tespit edilirse, PowerShell scripti otomatik olarak bir e-posta veya SMS gönderme, log kaydı tutma veya sistem yöneticisini uyarma gibi işlemler yapabilir.
Örneğin, belirli bir eşik değeri 80% olarak ayarladıysanız, script şu mantıkla çalışabilir:
Güvenlik ve performans açısından, bu scriptleri dikkatli yapılandırmak ve gereksiz sık kontrol yapmamak önemlidir. Ayrıca, sisteminize uygun izinleri ve bağlantı ayarlarını yapmayı unutmayın.
İşte temel bir örnek kod:
Bu temel yapılandırmayı kurumsal ihtiyaçlara göre genişletebilir, farklı uyarı yolları ve otomasyon adımları ekleyebilirsiniz. Sizce bu tarz otomasyonlar, sistem güvenliği ve performans yönetiminde ne kadar efektif olur? Deneyimleriniz veya ek önerileriniz neler?
İlk olarak, PowerShell ile CPU kullanımını gerçek zamanlı izleyebilmek için WMI veya PerformanceCounter sınıflarını kullanabiliriz. Örneğin, aşağıdaki komut, belirli bir zaman diliminde CPU kullanım yüzdesini ölçer:
KOD
1Get-Counter '\Processor(_Total)\% Processor Time' -SampleInterval 1 -MaxSamples 10Bu komut, CPU kullanımını 1 saniyelik aralıklarla 10 örnek alarak raporlar. Otomasyon için bu komutu bir döngüye alıp, sürekli kontrol sağlayabiliriz. Belirlediğiniz eşiğin üzerinde kullanım tespit edilirse, PowerShell scripti otomatik olarak bir e-posta veya SMS gönderme, log kaydı tutma veya sistem yöneticisini uyarma gibi işlemler yapabilir.
Örneğin, belirli bir eşik değeri 80% olarak ayarladıysanız, script şu mantıkla çalışabilir:
- Her döngüde CPU kullanımını ölç
- Eşik değeri aşarsa, alarm tetikle (e-posta, log, bildirim)
- Belirli aralıklarla sürekli kontrol sağla
Güvenlik ve performans açısından, bu scriptleri dikkatli yapılandırmak ve gereksiz sık kontrol yapmamak önemlidir. Ayrıca, sisteminize uygun izinleri ve bağlantı ayarlarını yapmayı unutmayın.
İşte temel bir örnek kod:
KOD
12345678910
$threshold = 80
while ($true) {
$cpuUsage = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue
if ($cpuUsage -gt $threshold) {
# Bildirim veya alarm kodu buraya
Send-MailMessage -To "admin@domain.com" -From "monitor@domain.com" -Subject "CPU Alarm" -Body "CPU usage exceeded threshold: $([math]::Round($cpuUsage,2))%" -SmtpServer "smtp.domain.com"
}
Start-Sleep -Seconds 10
}
Bu temel yapılandırmayı kurumsal ihtiyaçlara göre genişletebilir, farklı uyarı yolları ve otomasyon adımları ekleyebilirsiniz. Sizce bu tarz otomasyonlar, sistem güvenliği ve performans yönetiminde ne kadar efektif olur? Deneyimleriniz veya ek önerileriniz neler?
