Logrotate + Cron ile Otomatik Log Yönetimi Nasıl Kurulur?
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?
- 2. Logrotate’in Temel Özellikleri
- 3. Logrotate Kurulumu
- 4. Logrotate Yapılandırma Dosyaları
- Örnek Apache Logrotate Dosyası:
- 5. Özel Uygulamalar için Logrotate Kuralı Oluşturma
- 6. Cron ile Otomatikleştirme
- 7. Logrotate’i Manuel Test Etme
- 8. Logrotate Hatalarını İzleme
- 9. Gelişmiş Senaryolar: Postrotate Komutları
- 10. Log Yönetimi için İleri Düzey Öneriler
- Sonuç
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/syslogveya/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/logsgibi) - 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.