VPS Sunucuda Logrotate Ayarı
VPS sunucularında log dosyalarının yönetimi, sistem performansını ve depolama alanını korumak için kritik öneme sahiptir. Logrotate aracı, bu dosyaların otomatik olarak döndürülmesini, sıkıştırılmasını ve eski sürümlerinin silinmesini sağlayarak disk alanının tükenmesini önler. Özellikle yüksek trafikli web sunucularında Apache veya Nginx gibi servislerin ürettiği loglar hızla büyüyebilir. Bu makalede, VPS sunucunuzda Logrotate’ı etkili bir şekilde ayarlamanın adım adım rehberini sunacağız. Kurumsal ortamlar için optimize edilmiş konfigürasyonlar ile pratik örnekler paylaşarak, sorunsuz bir uygulama sağlayacağız.
Logrotate Nedir ve VPS Ortamında Neden Gerekli?
Logrotate, Linux tabanlı sistemlerde log dosyalarını yönetmek üzere geliştirilmiş açık kaynaklı bir yardımcı programdır. Bu araç, log dosyalarının belirli aralıklarla yeni bir dosyaya taşınmasını, eski dosyaların sıkıştırılmasını ve belirli bir süre sonra silinmesini otomatikleştirir. VPS sunucularda, sürekli çalışan servisler nedeniyle log dosyaları gigabaytlarca yer kaplayabilir; bu durum disk doluluğuna yol açarak sunucu çökmesine neden olabilir. Logrotate, bu riski minimize ederken, denetim ve hata ayıklama için gerekli logları korur.
VPS ortamında Logrotate’ın önemi, kaynakların sınırlı olmasından kaynaklanır. Örneğin, 20 GB’lık bir diskte access.log dosyası haftalar içinde dolabilir. Araç, günlük, haftalık veya aylık rotasyon seçenekleri sunar. Ayrıca, postrotate script’leri ile log dosyalarını yeniden açma gibi servis-spesifik işlemler yapabilir. Bu sayede, downtime olmadan log yönetimi sağlanır. Kurumsal kullanımda, Logrotate standart bir pratik olup, uyumluluk ve verimlilik sağlar.
VPS Sunucuda Logrotate Kurulumu ve Temel Yapılandırma
Kurulum Adımları
Çoğu Linux dağıtımında Logrotate varsayılan olarak yüklü gelir, ancak emin olmak için kontrol edin. Ubuntu/Debian tabanlı VPS’lerde terminalde sudo apt update && sudo apt install logrotate komutunu çalıştırın. CentOS/RHEL için ise sudo yum install logrotate veya yeni sürümlerde sudo dnf install logrotate kullanın. Kurulum sonrası, ana konfigürasyon dosyası /etc/logrotate.conf konumunda bulunur. Alt konfigürasyonlar /etc/logrotate.d/ dizininde saklanır. Bu yapı, modüler yönetim sağlar ve servis başına ayrı dosyalar oluşturmanıza izin verir.
Kurulum tamamlandıktan sonra, izinleri doğrulayın: sudo ls -l /etc/logrotate.d/. Logrotate root yetkisiyle çalışır, bu yüzden sudo gereklidir. VPS’nizde SELinux etkinse, setsebool -P logrotate_read_slack 1 ile okuma izinlerini ayarlayın. Bu adımlar, sorunsuz entegrasyon için temel oluşturur ve yaklaşık 5 dakikada tamamlanır.
Yapılandırma Dosyasını Düzenleme
Ana dosyayı sudo nano /etc/logrotate.conf ile açın. Temel direktifler: daily (günlük rotasyon), rotate 7 (7 eski kopya sakla), compress (sıkıştır), delaycompress (gecikmeli sıkıştırma), missingok (dosya yoksa hata verme), notifempty (boşsa rotasyon yapma). VPS için size 100M ekleyerek dosya boyutu bazlı rotasyon tanımlayın. Değişiklikleri kaydedin ve sistemi test edin.
Servis logları için /etc/logrotate.d/ altına yeni dosya oluşturun, örneğin sudo nano /etc/logrotate.d/myapp. Bu, ana dosyayı kirletmeden özelleştirme sağlar. Kurumsal standartlarda, tüm konfigürasyonları version kontrolü altına alın.
Örnek Konfigürasyon: Nginx Logları
Nginx için /etc/logrotate.d/nginx dosyasında şu yapıyı kullanın:
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
/usr/sbin/nginx -s reopen
endscript
}
Bu konfigürasyon, logları günlük döndürür, 52 hafta saklar, sıkıştırır ve Nginx’i yeniden yükler. VPS’te /var/log/nginx/access.log ve error.log için idealdir. Benzer şekilde Apache için postrotate /etc/init.d/apache2 reload ekleyin. Bu örnek, pratik bir başlangıç noktasıdır ve trafiğe göre rotate sayısını ayarlayın.
İleri Seviye Ayarlar, Test ve Bakım
Cron ile Otomatik Çalıştırma
Logrotate’ı cron ile entegre edin: sudo crontab -e ile düzenleyin ve 0 0 * * * /usr/sbin/logrotate /etc/logrotate.conf satırını ekleyin (gece yarısı günlük). VPS’lerde anacron alternatifi için /etc/cron.daily/logrotate script’ini etkinleştirin. Bu, sistem yeniden başlatılsa bile kaçırılan rotasyonları telafi eder. Kurumsal ortamda, logrotate çıktılarını /var/log/logrotate.log‘a yönlendirin: >> /var/log/logrotate.log 2>&1.
Performans için maxage 30 (30 günden eski sil) ve copytruncate (dosyayı kopyala ve kısalt, servis durdurmadan) kullanın. Bu ayarlar, yüksek yükteki VPS’ler için optimize edilmiştir.
Test Etme ve Sorun Giderme
Test için sudo logrotate -d /etc/logrotate.conf (debug modu, değişiklik yapmadan simüle) ve sudo logrotate -f /etc/logrotate.conf (zorla çalıştır) komutlarını kullanın. Hatalar için state dosyasını kontrol edin: /var/lib/logrotate/status. Yaygın sorun: İzinler; chown root root /var/log/*.log ile düzeltin. Disk dolu uyarısı alırsanız, df -h ile izleyin.
VPS monitöring araçlarıyla entegre edin; örneğin, rotasyon sonrası e-posta bildirimi için mail root@localhost ekleyin. Düzenli testler, kesintisiz operasyon sağlar.
Logrotate ayarlarını VPS sunucunuza uygulayarak, log yönetimini profesyonel seviyeye taşıyabilirsiniz. Bu konfigürasyonlar, disk kullanımını %70’e varan oranda azaltır ve sistem kararlılığını artırır. Düzenli bakım ile uzun vadeli verimlilik elde edin; her ay konfigürasyonları gözden geçirerek trafiğe uyarlayın. Bu yaklaşım, kurumsal standartlarda güvenilir bir altyapı sunar.