Logrotate + Cron ile Otomatik Log Yönetimi Nasıl Kurulur?

Logrotate + Cron ile Otomatik Log Yönetimi Nasıl Kurulur?
Yazı Özetini Göster

Logrotate + Cron ile Otomatik Log Yönetimi Nasıl Kurulur?

Linux tabanlı sistemlerde log dosyaları, sistemin performansını ve güvenliğini izlemek için vazgeçilmezdir. Ancak log dosyaları zamanla büyür ve disk alanını hızla doldurabilir. Bu nedenle log yönetimini otomatik hale getirmek sistem kararlılığı açısından kritiktir. Logrotate ve Cron araçlarını kullanarak log dosyalarının otomatik döndürülmesi, sıkıştırılması ve temizlenmesi mümkündür. Bu makalede, Logrotate + Cron kombinasyonuyla profesyonel log yönetimi kurulumunu adım adım inceleyeceğiz.

1. Logrotate Nedir?

Logrotate, sistemdeki log dosyalarının boyutlarını kontrol altında tutmak için geliştirilmiş bir otomasyon aracıdır. Log dosyaları belirli aralıklarla döndürülür, eski kayıtlar arşivlenir ve gerekirse otomatik olarak silinir.
Bu mekanizma sayesinde hem disk kullanımı optimize edilir hem de log analiz araçları (örneğin fail2ban, auditd, syslog) düzenli çalışmaya devam eder.

2. Logrotate’in Temel Özellikleri

  • Belirli periyotlarda (günlük, haftalık, aylık) log döndürme
  • Eski logları sıkıştırma (gzip)
  • Belirli sayıda log kopyasını saklama
  • Log dosyalarını otomatik yeniden başlatma
  • Kişisel veya servis bazlı yapılandırma desteği

3. Logrotate Kurulumu

Çoğu Linux dağıtımında Logrotate varsayılan olarak kurulu gelir. Eğer sisteminizde yoksa aşağıdaki komutlarla kurabilirsiniz:

# Ubuntu / Debian
sudo apt install logrotate -y

# CentOS / RHEL
sudo yum install logrotate -y

4. Logrotate Yapılandırma Dosyaları

Logrotate ana yapılandırma dosyası: /etc/logrotate.conf
Her servis için özel ayar dosyaları ise: /etc/logrotate.d/ dizininde bulunur.

Örnek Apache Logrotate Dosyası:

/var/log/apache2/*.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        systemctl reload apache2 > /dev/null 2>&1 || true
    endscript
}

Bu yapılandırmada loglar her hafta döndürülür, 4 haftalık yedek saklanır ve sıkıştırılır. “postrotate” bölümü, log döndürme sonrası Apache servisinin yeniden yüklenmesini sağlar.

5. Özel Uygulamalar için Logrotate Kuralı Oluşturma

Uygulamanız kendi log dosyalarını üretiyorsa özel bir Logrotate yapılandırması ekleyebilirsiniz. Örnek:

/var/www/project/logs/*.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 644 www-data www-data
}

Bu ayar ile loglar her gün döndürülür, 7 günlük kayıt saklanır ve sıkıştırılır.
Yoğun trafiğe sahip projeler için VDS veya Premium VDS altyapılarında daha verimli çalışır.

6. Cron ile Otomatikleştirme

Cron, zamanlanmış görevleri otomatik çalıştırmak için kullanılan Linux servisidir. Logrotate zaten varsayılan olarak bir cron göreviyle entegre edilir. Bu görev genellikle şu dosyada bulunur:

/etc/cron.daily/logrotate

Eğer log yönetimini daha sık (örneğin saatlik) yapmak istiyorsanız kendi cron görevlerinizi tanımlayabilirsiniz:

sudo crontab -e

Ve şu satırı ekleyin:

0 * * * * /usr/sbin/logrotate /etc/logrotate.conf

Bu, Logrotate’in her saat başı çalışmasını sağlar.

7. Logrotate’i Manuel Test Etme

Yapılandırmanızı test etmek için:

sudo logrotate -d /etc/logrotate.conf

veya doğrudan döndürme işlemini simüle etmek için:

sudo logrotate -f /etc/logrotate.conf

8. Logrotate Hatalarını İzleme

Logrotate başarısız olursa genellikle şu dosyalarda bilgi bulunur:

  • /var/lib/logrotate/status — son log döndürme zamanları
  • /var/log/syslog veya /var/log/messages — hata detayları

9. Gelişmiş Senaryolar: Postrotate Komutları

Servis loglarını döndürdükten sonra servisi yeniden başlatmak gerekebilir. Örneğin:

postrotate
  systemctl restart nginx
endscript

Bu sayede yeni log dosyası aktif hale gelir ve eski dosya arşivlenir.
Performans artışı için Optimizasyon Hizmeti kapsamında merkezi log izleme çözümleri de entegre edilebilir.

10. Log Yönetimi için İleri Düzey Öneriler

  • Yoğun sistemlerde logları farklı disk veya bölüme taşıyın (/mnt/logs gibi)
  • gzip yerine xz gibi yüksek sıkıştırma oranı sunan algoritmalar kullanılabilir
  • Logrotate’i ELK (Elasticsearch, Logstash, Kibana) veya Grafana Loki ile entegre edin
  • Otomatik log temizleme politikalarını WAF ile birlikte yönetin

Sonuç

Logrotate ve Cron araçları, Linux ortamlarında log yönetimini kolaylaştırır ve sistem kaynaklarının verimli kullanılmasını sağlar.
Doğru yapılandırıldığında, hem performans hem güvenlik açısından sistem stabilitesini artırır.
Kurumsal ölçekte sürdürülebilir bir altyapı için HostLigo’nun Linux Hosting ve VDS çözümleri profesyonel log yönetimi için ideal bir temel sağlar.

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer Yazılar