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

Etiketler

log analizi syslog hata tespiti log monitoring