Windows IIS Sağlık Kontrolü İçin PowerShell Scripti

0 Ответы 4 Просмотры
·
Участники
Автор темы #0
IIS (Internet Information Services) sunucularının sağlığını düzenli olarak kontrol etmek, performans ve güvenlik açısından kritik öneme sahiptir. Bu nedenle, PowerShell kullanarak otomatik ve detaylı bir sağlık kontrolü scripti hazırlamak, yöneticilere zaman kazandırır ve olası sorunları erken tespit etme imkanı sağlar.


İlk adım olarak, IIS servisinin durumunu kontrol etmek temel bir adımdır. Bu, hizmetin çalışıp çalışmadığını, herhangi bir hata olup olmadığını ve restart edilmesi gerekip gerekmediğini belirlemek açısından önemlidir. Ayrıca, belirli uygulama havuzlarının durumu ve bileşenlerin çalışma durumu da detaylı raporlanmalıdır.

İkinci olarak, sunucudaki temel performans göstergeleri (CPU, RAM kullanımı, disk alanı) izlenmelidir. Bu sayede, yüksek kaynak kullanımı nedeniyle performans sorunları oluşmadan önce önlem alınabilir. Ayrıca, IIS ile ilişkili uygulama havuzlarının durumu, hatalar veya yüksek hata sayısı (404, 500 gibi) gibi metrikler de raporlanmalıdır.

Üçüncü aşamada, SSL sertifikalarının geçerlilik durumu ve güncelleme zamanı kontrol edilmelidir. Güvenlik açısından kritik olan bu alan, süresi dolmuş veya yaklaşan sertifikalar hakkında uyarı sağlar.

Son olarak, log dosyalarının analizi ve belirli hata kalıplarını tespit edecek temel regex veya anahtar kelimelerle tarama yapılabilir. Bu sayede, sorunlar büyümeden önce önleyici tedbirler alınabilir.

İşte temel bir PowerShell scripti örneği:

КОД
1234567891011121314151617181920212223242526272829303132333435# IIS Servisi Durum Kontrolü
Import-Module WebAdministration
$serviceStatus = Get-Service W3SVC
Write-Output "IIS Hizmeti Durumu: $($serviceStatus.Status)"

[b]Uygulama Havuzlarının Durumu[/b]
$AppPools = Get-ChildItem IIS:\AppPools
foreach ($appPool in $AppPools) {
    $status = $appPool.State
    Write-Output "Havuz: $($appPool.Name) - Durum: $status"
}

[b]Disk ve RAM Kullanımı[/b]
$disk = Get-PSDrive C
Write-Output "Disk C: Kullanım %$([math]::Round(($disk.Used / $disk.Size) * 100, 2))"

$mem = Get-CimInstance Win32_OperatingSystem
$freeMem = [math]::Round($mem.FreePhysicalMemory / 1MB, 2)
Write-Output "Serbest RAM: $freeMem GB"

[b]SSL Sertifikası Kontrolü[/b]
$certs = Get-ChildItem -Path Cert:\LocalMachine\My
foreach ($cert in $certs) {
    $notAfter = $cert.NotAfter
    $daysLeft = ($notAfter - (Get-Date)).Days
    if ($daysLeft -lt 30) {
        Write-Warning "Sertifika $($cert.Subject) süresi dolmaya yaklaşıyor: $daysLeft gün kaldı."
    }
}

[b]Log Analizi (örnek)[/b]
$logPath = "C:\inetpub\logs\LogFiles\W3SVC1\"
Get-Content $logPath\*.log | Select-String " 404 " | Measure-Object | Select-Object Count

[b]Sonuçların detaylı raporunu email veya dosya olarak kaydedebilirsiniz.[/b]


Bu temel script, düzenli çalıştırıldığında IIS ve sunucu sağlığı hakkında hızlı ve kapsamlı bilgi sağlar. Ayrıca, ihtiyaçlara göre özelleştirilebilir ve otomasyon ile entegre edilebilir. Siz hangi ek kontrolleri veya izleme metriklerini eklemek istersiniz?

Чтобы ответить, необходимо войти в систему.

Пользователи, просматривающие эту тему (Всего: 1, Участники: 1, Гости: 0)
Всего: 1 (участники: 1, гости: 0)
0 цитат выбрано