Ubuntu Server’da Logrotate Custom Config

Ubuntu Server ortamlarında log dosyalarının etkin yönetimi, sistem performansını korumanın ve olası sorunları erken tespit etmenin kritik bir unsurudur.

Reklam Alanı

Ubuntu Server ortamlarında log dosyalarının etkin yönetimi, sistem performansını korumanın ve olası sorunları erken tespit etmenin kritik bir unsurudur. Logrotate aracı, bu süreçte vazgeçilmez bir rol oynar ve log dosyalarını otomatik olarak sıkıştırır, eski dosyaları siler veya döndürür. Varsayılan ayarlar birçok senaryoda yeterli olsa da, özel uygulama ihtiyaçlarına göre custom konfigürasyonlar oluşturmak, depolama alanını optimize etmek ve güvenlik standartlarını yükseltmek için gereklidir. Bu makalede, Ubuntu Server üzerinde logrotate için custom config oluşturma sürecini adım adım ele alacağız. Pratik örnekler ve talimatlarla, sistem yöneticilerinin bu işlemi sorunsuz uygulayabilmesi hedeflenmektedir.

Logrotate’un Temel Yapısı ve Custom Config Gerekliliği

Logrotate, cron tablosu üzerinden periyodik olarak çalıştırılan bir Perl betiğidir ve /etc/logrotate.conf ana konfigürasyon dosyasını temel alır. Bu dosya, global direktifleri içerirken, /etc/logrotate.d/ dizini altında uygulama bazlı custom dosyalar tanımlanır. Custom config’ler, belirli log dosyalarına özgü rotation sıklığını, boyut limitlerini ve post-processing komutlarını belirler. Örneğin, yüksek trafikli bir web sunucusunda Apache loglarının günlük yerine saatlik döndürülmesi, depolama baskısını azaltır ve analiz kolaylığı sağlar.

Ubuntu Server kurulumlarında logrotate varsayılan olarak etkin olup, /var/log/syslog gibi sistem loglarını yönetir. Ancak, custom ihtiyaçlar için /etc/logrotate.d/ altına yeni bir dosya eklemek standart yaklaşımdır. Bu yöntem, ana konfigürasyonu bozmadan modüler yönetim sağlar. Global direktifler (örneğin, create 0640 root adm) tüm config’leri etkilerken, local dosyalarda override edilebilir. Bu esneklik, kurumsal ortamlarda ölçeklenebilirlik sunar ve manuel müdahaleleri minimize eder.

Custom Logrotate Konfigürasyonu Oluşturma Adımları

Yeni Config Dosyası Hazırlama

/etc/logrotate.d/ dizinine root yetkisiyle bir dosya oluşturun, örneğin myapp.conf. Dosya izinlerini 644 olarak ayarlayın: sudo chmod 644 /etc/logrotate.d/myapp.conf. İçeriğe log dosyasının yolunu belirtin, örneğin /var/log/myapp/*.log { }. Bu blok içinde rotation kriterlerini tanımlayın. Süre bazlı rotation için daily, weekly veya monthly direktiflerini kullanın. Boyut bazlı için size 100M gibi değerler ekleyin. Bu yaklaşım, log büyümesini proaktif yönetir ve disk doluluğunu önler.

Yaygın Direktifler ve Pratik Örnek

Önemli direktifler arasında rotate 5 (5 eski log sakla), compress (gzip sıkıştırma), delaycompress (gecikmeli sıkıştırma), missingok (eksik logları görmezden gel), notifempty (boş logları döndürme) yer alır. Postrotate script ile logrotate sonrası komutlar çalıştırılabilir, örneğin postrotate /bin/kill -HUP `cat /var/run/myapp.pid` endscript. Tam örnek: /var/log/myapp/app.log { daily rotate 7 compress delaycompress missingok notifempty postrotate /bin/systemctl reload myapp endscript }. Bu config, günlük rotation yapar, 7 yedek tutar ve servis reload eder. Kurumsal uygulamalarda, sharedscripts ile birden fazla log için tek script çalıştırma verimliliği artırır.

Direktifleri test etmek için /usr/sbin/logrotate -d /etc/logrotate.d/myapp.conf komutunu kullanın. Bu, dry-run moduyla syntax hatalarını yakalar. Custom config’ler, SELinux veya AppArmor gibi güvenlik katmanlarıyla uyumlu olmalıdır; bu nedenle dosya izinlerini dikkate alın.

Uygulama, Test ve Bakım Süreci

Konfigürasyonu Etkinleştirme ve Test Etme

Config dosyasını kaydettikten sonra, manuel test için sudo logrotate -f /etc/logrotate.conf çalıştırın; bu force moduyla rotation’ı hemen tetikler. Debug için -v verbose flag’ini ekleyin: sudo logrotate -vf /etc/logrotate.conf. Cron job’unu kontrol edin: crontab -l | grep logrotate. Varsayılan /etc/cron.daily/logrotate ile günlük çalışır. Başarılı rotation sonrası /var/log/myapp/app.log.1.gz gibi dosyalar oluşur. Bu adımlar, production öncesi doğrulama sağlar ve kesinti riskini ortadan kaldırır.

Olası Sorunlar ve Çözümler

Yaygın sorunlar arasında izin hataları (permission denied) ve direktif syntax hatalarıdır. Logrotate status dosyası /var/lib/logrotate/status’ta son rotation bilgilerini tutar; inceleyin. Eğer rotation tetiklenmiyorsa, cron servisini etkinleştirin: sudo systemctl enable cron. Büyük loglar için prerotate ile truncate kullanın: prerotate echo “” > /var/log/myapp/app.log endscript. Monitoring için Nagios veya Prometheus entegrasyonu önerilir, ancak temel bakım düzenli status kontrolüyle yapılır. Bu prosedürler, sistem güvenilirliğini artırır.

Sonuç olarak, Ubuntu Server’da logrotate custom config oluşturmak, log yönetimini profesyonelleştirir ve operasyonel verimliliği yükseltir. Adım adım uygulanan bu talimatlar, sistem yöneticilerine pratik bir çerçeve sunar. Düzenli bakım ve testlerle, logrotate’un faydalarından maksimum düzeyde yararlanabilirsiniz; bu da kurumsal altyapınızın sürdürülebilirliğini güçlendirir.

Yazar: Editör
İçerik: 566 kelime
Okuma Süresi: 4 dakika
Zaman: Bugün
Yayım: 20-03-2026
Güncelleme: 20-03-2026
Benzer İçerikler
Dijital Dönüşüm kategorisinden ilginize çekebilecek benzer içerikler