Linux Log Dosyaları: Nerede, Nasıl İncelenir?
Linux log dosyaları rehberi: /var/log dizini, journalctl ile systemd logları, grep analizi ve logrotate yapılandırması.
Linux Log Dosyaları Neden Önemli?
Log dosyaları, sistem yöneticilerinin sunucu sağlığını izlemesi, güvenlik ihlallerini tespit etmesi ve uygulama hatalarını teşhis etmesi için temel bilgi kaynağıdır. Bir sunucu sorunu yaşandığında ilk bakılacak yer her zaman log dosyalarıdır. Linux'ta loglar yapılandırılmış dizinlerde saklanır ve farklı araçlarla analiz edilebilir.
Modern Linux dağıtımları iki paralel log sistemi kullanır: geleneksel metin tabanlı syslog (rsyslog/syslog-ng) ve systemd'nin ikili log veritabanı (journald). Her ikisini de etkin biçimde kullanmak sistem yöneticisinin olmazsa olmazıdır.
Temel Log Dizini: /var/log
ls -la /var/log/
Önemli log dosyaları ve işlevleri:
Sistem Logları
- /var/log/syslog (Debian/Ubuntu) - Genel sistem mesajları
- /var/log/messages (RHEL/AlmaLinux) - Genel sistem logları
- /var/log/kern.log - Kernel mesajları
- /var/log/dmesg - Açılış sırasındaki kernel ring buffer
- /var/log/boot.log - Sistem açılış logları
Güvenlik Logları
- /var/log/auth.log (Ubuntu) - SSH girişleri, sudo kullanımı, başarısız denemeler
- /var/log/secure (AlmaLinux) - Kimlik doğrulama ve güvenlik logları
- /var/log/faillog - Başarısız giriş denemeleri
- /var/log/lastlog - Son giriş bilgileri
Uygulama Logları
- /var/log/nginx/ - Nginx access ve error logları
- /var/log/apache2/ - Apache access ve error logları
- /var/log/mysql/ - MySQL error logları
- /var/log/mail.log - Postfix/Dovecot mail logları
Gerçek Zamanlı Log İzleme
# Dosya sonunu takip et
sudo tail -f /var/log/syslog
sudo tail -f /var/log/nginx/access.log
# Birden fazla dosyayı aynı anda izle
sudo tail -f /var/log/nginx/error.log /var/log/syslog
# Son 50 satırı göster
sudo tail -50 /var/log/auth.log
# Baştan itibaren göster
sudo head -20 /var/log/syslog
journalctl ile Systemd Logları
# Tüm sistem logları
sudo journalctl
# Son 100 satır
sudo journalctl -n 100
# Belirli servis logları
sudo journalctl -u nginx
sudo journalctl -u mysql
sudo journalctl -u ssh
# Gerçek zamanlı takip
sudo journalctl -f
# Son 1 saatin logları
sudo journalctl --since "1 hour ago"
# Belirli tarih aralığı
sudo journalctl --since "2024-01-01 00:00:00" --until "2024-01-02 23:59:59"
# Sadece hata logları
sudo journalctl -p err
# Boot logları
sudo journalctl -b # Bu açılış
sudo journalctl -b -1 # Önceki açılış
grep ile Log Analizi
# SSH brute force saldırılarını bul
sudo grep "Failed password" /var/log/auth.log | head -20
# Başarısız SSH girişimlerini IP'ye göre say
sudo grep "Failed password" /var/log/auth.log | \
awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -10
# Nginx 500 hataları
sudo grep " 500 " /var/log/nginx/access.log | tail -20
# Belirli IP'nin tüm istekleri
sudo grep "1.2.3.4" /var/log/nginx/access.log
# Belirli zaman dilimindeki istekler
sudo awk '/01\/Jan\/2024:10/' /var/log/nginx/access.log
Nginx Log Analizi
# En çok istek yapan IP'ler (top 10)
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
# En çok erişilen URL'ler
sudo awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
# HTTP durum kodlarına göre dağılım
sudo awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
# Günlük istek sayısı
sudo awk '{print $4}' /var/log/nginx/access.log | cut -d: -f1 | sort | uniq -c
Logrotate ile Log Yönetimi
sudo nano /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
# Logrotate manuel test
sudo logrotate -d /etc/logrotate.d/nginx # Dry run
sudo logrotate -f /etc/logrotate.d/nginx # Zorla çalıştır
Disk Kullanımı Kontrol
# Log dizininin disk kullanımı
sudo du -sh /var/log/* | sort -rh | head -20
# 100MB'dan büyük log dosyaları
sudo find /var/log -name "*.log" -size +100M
Sonuç
Linux log dosyalarını nerede bulacağınızı, journalctl ile systemd loglarını nasıl inceleyeceğinizi, grep ile analiz yapacağınızı ve logrotate ile log yönetimini otomatize edeceğinizi öğrendiniz. Düzenli log analizi, güvenlik sorunlarını ve performans darboğazlarını erken tespit etmenin en etkili yoludur.
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!