
CentOS Sunucusunda Log Dosyalarını Analiz Etme ve Yönetme
CentOS sunucusunda log dosyalarını analiz etmek ve yönetmek, sistemin sağlığını izlemek, hataları tespit etmek ve güvenlik olaylarını denetlemek için oldukça önemlidir. İşte CentOS sunucusunda log dosyalarını analiz etme ve yönetme konusunda bazı temel adımlar ve araçlar:
1. Log Dosyalarını Bulma
CentOS'ta log dosyaları genellikle /var/log
dizininde bulunur. Bu dizinde, sistem, uygulama ve güvenlik ile ilgili pek çok log dosyası yer alır. Öne çıkan bazı log dosyaları:
/var/log/messages
: Sistemdeki genel olaylar ve hata mesajları./var/log/secure
: Güvenlik ve kullanıcı oturumu ile ilgili loglar./var/log/cron
: Cron işlerinin çıktısı./var/log/httpd/
: Apache web sunucusunun log dosyaları./var/log/mysql/
: MySQL veritabanı logları./var/log/dmesg
: Kernel ve donanım ile ilgili mesajlar./var/log/audit/
: SELinux ve güvenlik denetim logları.
2. Log Dosyalarını Görüntüleme ve Analiz Etme
Log dosyalarını görüntülemek için aşağıdaki komutları kullanabilirsiniz:
cat
Komutu
Bir dosyanın tamamını ekrana yazdırmak için:
cat /var/log/messages
less
Komutu
Büyük log dosyalarını sayfa sayfa incelemek için:
less /var/log/messages
less
komutunda yukarı ve aşağı ok tuşlarıyla gezinilebilir, arama yapabilirsiniz.
tail
Komutu
Log dosyasının son kısmını izlemek için:
tail -f /var/log/messages
Bu komut, dosyaya yeni satırlar eklenmeye devam ettikçe anında ekrana basar.
grep
Komutu
Log dosyalarında belirli bir terimi aramak için:
grep "error" /var/log/messages
Bu komut, log dosyasındaki "error" kelimesini içeren satırları listeleyecektir.
journalctl
Komutu
Systemd loglarını incelemek için:
journalctl -xe
Bu komut, sistemdeki tüm logları listeleyecek ve en son hataları gösterecektir. Ayrıca, zaman aralıklarına göre de filtreleme yapabilirsiniz:
journalctl --since "2025-03-01" --until "2025-03-05"
3. Log Dosyalarını Yönetme
Log dosyalarını yönetmek için birkaç farklı strateji ve araç vardır.
Log Rotasyonu
Log dosyalarının boyutlarının hızla büyümesini engellemek için log rotasyonu kullanılır. CentOS'ta, log rotasyonu için logrotate
aracı kullanılır. Bu araç, log dosyalarını belirli bir boyuta ulaştığında arşivler ve yeni bir dosya oluşturur.
Log rotasyon ayarları, /etc/logrotate.conf
dosyasındaki ana ayarlar ve /etc/logrotate.d/
dizinindeki özel konfigürasyon dosyaları ile yapılır. Örneğin, Apache için log rotasyonu /etc/logrotate.d/httpd
dosyasına yapılabilir.
Logrotate dosyası örneği:
/var/log/httpd/*.log {
weekly
rotate 4
compress
missingok
notifempty
create 640 root root
}
Bu ayar, Apache loglarını her hafta döndürür, eski logları sıkıştırır ve 4 haftaya kadar saklar.
logrotate
Komutunu Manuel Çalıştırmak
Log dosyalarını manuel olarak döndürmek için:
sudo logrotate -f /etc/logrotate.conf
Log Dosyalarını Temizleme
Log dosyalarının fazla büyümesini engellemek için bazı dosyaları düzenli aralıklarla temizleyebilirsiniz. Örneğin, /var/log/
dizinindeki eski log dosyalarını silmek için:
sudo rm /var/log/*.old
4. Log Dosyalarını İzlemek
Log dosyalarındaki kritik olayları izlemek için bazı araçlar kullanılabilir. Bu araçlar, logları sürekli takip ederek önemli hataları hızlıca tespit etmenizi sağlar.
Logwatch
Aracı
Logwatch, günlük olarak log dosyalarını analiz eder ve raporlar üretir. Yüklemek için:
sudo yum install logwatch
Raporu almak için:
sudo logwatch --detail High --mailto [email protected]
Fail2ban
Aracı
Fail2ban
, log dosyalarını izler ve şüpheli giriş denemeleri gibi güvenlik tehditlerini engeller. Yüklemek için:
sudo yum install fail2ban
5. Log Dosyalarının Yedeklenmesi
Log dosyalarını düzenli olarak yedeklemek, önemli verilerin kaybolmasını engeller. Yedekleme için basit bir cron job oluşturabilirsiniz. Örneğin, her gün gece yarısı log dosyalarını yedeklemek için bir cron job ekleyebilirsiniz:
sudo crontab -e
Ve şunu ekleyin:
0 0 * * * cp -r /var/log /path/to/backup/
6. SELinux Logları ve Güvenlik
SELinux ile ilgili loglar genellikle /var/log/audit/audit.log
dosyasına yazılır. SELinux, güvenlik olaylarını detaylı şekilde loglar ve bu logları analiz etmek için ausearch
veya sealert
gibi araçlar kullanılabilir.
SELinux Loglarını Analiz Etme
SELinux loglarını analiz etmek için:
ausearch -m avc
Bu komut, SELinux tarafından engellenen işlemleri listeler.
Sonuç
CentOS sunucusunda log dosyalarını analiz etmek ve yönetmek, sistem yönetiminin önemli bir parçasıdır. Log dosyalarının düzenli olarak izlenmesi ve yönetilmesi, sistemdeki sorunları erken tespit etmek ve güvenlik açıklarını kapatmak için hayati öneme sahiptir.