HTTP 404 hataları, web sunucuları ve uygulamalarında sıkça karşılaşılan, genellikle kaynak bulunamadığında ortaya çıkan durum kodlarıdır. Bu hataların yoğun olduğu dönemleri tespit etmek, sistem yöneticileri ve geliştiriciler için önemli bir performans ve kullanıcı deneyimi göstergesidir. Bash betikleri kullanarak bu hataları otomatik olarak algılamak ve raporlamak, manuel kontrolleri azaltıp, sorunlara hızlı müdahale imkanı sağlar.
Bash ile HTTP 404 hatalarını tespit etmek, temel olarak sunucu loglarını düzenli olarak analiz etmek ve belirli hata kodlarını filtrelemekle başlar. Sunucu log dosyaları genellikle /var/log/httpd/ veya /var/log/nginx/ gibi dizinlerde bulunur. Bu loglar, her isteğin detaylarını içerir ve genellikle aşağıdaki gibi yapılandırılmıştır:
- IP adresi
- Zaman damgası
- İstek yöntemi (GET, POST)
- Hedef URL
- Durum kodu (örn. 404)
- Yanıt boyutu
İşte temel bir Bash örneği:
12345678910
#!/bin/bash
LOG_FILE="/var/log/nginx/access.log"
ALERT_FILE="/tmp/404_alerts.txt"
THRESHOLD=50
[b]Son 1 saat içindeki 404 hatalarını say[/b]
404_COUNT=$(awk '$9==404 {count++} END {print count}' $ALERT_FILE
# Burada e-posta veya başka bildirimler eklenebilir
fi
Bu script, belirli bir zaman diliminde (örneğin son 1 saat) loglarda kaç tane 404 hatası olduğunu sayar ve eğer belirlenen eşik değeri aşılırsa, uyarı oluşturur. Daha gelişmiş bir sistem kurmak için şu noktaları düşünebilirsiniz:
- Farklı zaman dilimleri ve eşiğin ayarlanması
- Hata detaylarının raporlanması (örn. en çok hata alınan URL'ler)
- Otomatik bildirim göndermesi (e-posta, Slack, vs.)
- Logların düzenli temizlenmesi ve arşivlenmesi
Yüksek hacimli sistemlerde, log analizi ve hata tespiti performans sorunlarına yol açabilir. Bu nedenle, logları ön filtreleme veya log yönetim araçlarıyla entegre etmek daha verimli sonuçlar verir. Ayrıca, log formatına göre awk veya grep komutlarını uyarlamak gerekebilir. Bu otomasyon, düzenli izleme ve hızlı müdahale açısından önemli bir araçtır. Sizin de bu tarz bir sistem kurarken karşılaştığınız zorluklar veya ek özellikler nelerdir?