Log Dosyası Analiz Aracı
System loglarını analiz ederek hata mesajları, uyarılar ve önemli olayları raporlayan gelişmiş log analiz scripti.
Yayınlanma: 05.03.2024
Detaylı Bilgi
Bu script, sistem log dosyalarını analiz ederek hata mesajları, uyarılar ve önemli olayları raporlar. Log analizi, sistem sorunlarını tespit etmek ve güvenlik olaylarını izlemek için kritik öneme sahiptir.
Script Ne İşe Yarar?
Bu script, log dosyalarını analiz ederek:
- Hata, uyarı ve kritik mesaj sayılarını hesaplar
- Son hataları listeler
- En çok görülen hata mesajlarını gösterir
- Kimlik doğrulama başarısızlıklarını tespit eder
- SUDO kullanımını raporlar
- Servis yeniden başlatmalarını gösterir
- En çok görülen IP adreslerini listeler
Neden Kullanmalısınız?
Log analizi, sistem yönetiminin temelidir:
- Sorun Tespiti: Hataları hızlıca bulun
- Güvenlik: Şüpheli aktiviteleri tespit edin
- Performans: Sistem sorunlarını analiz edin
- Raporlama: Detaylı log raporları oluşturun
Nasıl Kullanılır?
Adım Adım Kullanım Kılavuzu
1. Script Dosyasını Oluşturun
nano log_analyzer.sh
2. Çalıştırılabilir Yapın
chmod +x log_analyzer.sh
3. Varsayılan Log Analizi
./log_analyzer.sh
4. Belirli Log Dosyası Analizi
./log_analyzer.sh /var/log/apache2/error.log
./log_analyzer.sh /var/log/nginx/error.log Gereksinimler
Gereksinimler
- Log Dosyası: Analiz edilecek log dosyası
- Okuma İzni: Log dosyasını okuma yetkisi
- grep, awk, sort: Temel Linux komutları (varsayılan kurulu)
Kullanım Senaryoları
Kullanım Senaryoları
1. Güvenlik Denetimi
Başarısız giriş denemelerini ve şüpheli IP adreslerini tespit edin.
2. Sorun Giderme
Sistem hatalarını analiz ederek sorunları hızlıca çözün.
3. Performans Analizi
Servis yeniden başlatmalarını ve hata desenlerini analiz edin.
Örnekler
Kullanım Örnekleri
Örnek 1: Sistem Log Analizi
./log_analyzer.sh
Örnek 2: Web Sunucu Log Analizi
./log_analyzer.sh /var/log/apache2/error.log Kod
#!/bin/bash
# Log File Analyzer
LOG_FILE="${1:-/var/log/syslog}"
OUTPUT_FILE="log_report_$(date +%Y%m%d_%H%M%S).txt"
echo "Analyzing log file: $LOG_FILE"
echo ""
if [ ! -f "$LOG_FILE" ]; then
echo "Error: Log file not found!"
exit 1
fi
{
echo "======================================"
echo " LOG ANALYSIS REPORT"
echo "======================================"
echo "Log File: $LOG_FILE"
echo "Analysis Date: $(date)"
echo "Report Generated By: $(whoami)@$(hostname)"
echo ""
echo "--- SUMMARY ---"
echo "Total Lines: $(wc -l < "$LOG_FILE")"
echo "File Size: $(du -h "$LOG_FILE" | cut -f1)"
echo ""
echo "--- ERROR COUNT ---"
ERROR_COUNT=$(grep -i "error" "$LOG_FILE" | wc -l)
echo "Errors: $ERROR_COUNT"
WARN_COUNT=$(grep -i "warn" "$LOG_FILE" | wc -l)
echo "Warnings: $WARN_COUNT"
CRIT_COUNT=$(grep -i "critical" "$LOG_FILE" | wc -l)
echo "Critical: $CRIT_COUNT"
echo ""
echo "--- RECENT ERRORS (Last 20) ---"
grep -i "error" "$LOG_FILE" | tail -n 20
echo ""
echo "--- TOP ERROR MESSAGES ---"
grep -i "error" "$LOG_FILE" | cut -d: -f4- | sort | uniq -c | sort -rn | head -n 10
echo ""
echo "--- AUTHENTICATION FAILURES ---"
grep -i "failed password" "$LOG_FILE" | tail -n 10
echo ""
echo "--- SUDO USAGE ---"
grep -i "sudo" "$LOG_FILE" | tail -n 10
echo ""
echo "--- SERVICE RESTARTS ---"
grep -i "start\|stop\|restart" "$LOG_FILE" | tail -n 10
echo ""
echo "--- TOP IP ADDRESSES ---"
grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" "$LOG_FILE" | sort | uniq -c | sort -rn | head -n 10
echo ""
echo "======================================"
echo "Report completed: $(date)"
echo "======================================"
} | tee "$OUTPUT_FILE"
echo ""
echo "✓ Report saved to: $OUTPUT_FILE"
Kullanım
chmod +x log_analyzer.sh
# Default syslog analizi
./log_analyzer.sh
# Belirli log dosyası
./log_analyzer.sh /var/log/apache2/error.log
# Nginx error log
./log_analyzer.sh /var/log/nginx/error.log
Sorun Giderme
Sorun Giderme
Problem: "Log file not found"
Çözüm: Log dosyasının yolunu kontrol edin:
ls -la /var/log/syslog