- Konu sahibi
- #1
Log dosyaları büyürken servisi düşürmeden bakım yapmak
Birçok sunucuda asıl sorun logların varlığı değil, onların ne zaman ve nasıl döndürüleceğidir. Log dosyaları kontrolsüz büyüdüğünde disk alanı şişer, analiz zorlaşır ve bazı servislerde yazma hataları başlayabilir. Bu yüzden log rotasyonu, bakım işleri arasında en erken planlanması gereken adımlardan biridir.
Neden yalnızca dosyayı taşımak yetmez
Bazı servisler log dosyasını açık tutar ve eski dosya adını hemen bırakmaz. Dosyayı sadece yeniden adlandırıp arşive almak, servis yeni dosya tanımadan devam ediyorsa kayıtların eski dosyada yazılmayı sürdürmesine yol açabilir. Apache dokümantasyonu bu yüzden döndürme işleminden sonra servise log dosyalarını yeniden açtırmak için graceful reload önerir. Aynı kaynak, bu işlemin açık bağlantıları kesmeden yapılabildiğini de belirtir.
Buradaki pratik ayrım şudur: dosyayı döndürmek bir depolama işlemidir, servise yeniden okumasını söylemek ise çalışma zamanı işlemidir. İkisini ayrı düşünmek gerekir.
Güvenli bir akış nasıl kurulur
Sağlam bir bakım akışında genelde şu sıra izlenir:
- Yeni log dosyası oluşturulur veya döndürme aracı tarafından hazırlanır.
- Eski dosya arşive alınır ve gerekiyorsa sıkıştırılır.
- Servise reload veya graceful komutu gönderilir.
- Kısa bir gecikmeden sonra eski dosyada yazma kalmadığı doğrulanır.
Yanlış yapılandırmada görülen tipik hatalar
En sık yapılan hata, döndürme komutunu çalıştırıp servis tarafında ek adım gerekip gerekmediğini kontrol etmemektir. Bunun sonucu olarak:
- Eski log dosyası boşalmış sanılır ama servis yazmaya devam eder.
- Arşivlenen dosya beklenenden büyük kalır.
- Yeni log dosyası oluşur ama uygulama onu açmamıştır.
- Disk alanı sorunu çözülmüş gibi görünse de birkaç saat sonra aynı sorun geri döner.
Ne zaman yeniden başlatma, ne zaman reload
Yapılandırma değişmediyse ve servis bunu destekliyorsa reload çoğu zaman yeterlidir. Çünkü amaç bağlantıları kesmeden yeni ayarı devreye almaktır. Ancak yapılandırma dosyası sözdizimi hatası içeriyorsa veya servis reload ile güvenli kalamıyorsa, önce test etmek ve gerekiyorsa planlı restart yapmak gerekir. Apache'nin apachectl aracı da restart öncesi yapılandırma kontrolü yapabildiğini belirtir.
Bu, özellikle log rotasyonu ile birlikte çalışırken önemlidir. Çünkü bakım penceresi kısa tutulmak istenirken hata durumunda servisi tamamen düşürmek istemezsiniz. Doğru tercih, servis davranışına göre değişir; tek bir komut her ortam için doğru değildir.
Disk doluluğu neden sadece log konusu değildir
Log rotasyonu çoğu zaman disk alanı sorununu çözer ama tek başına yeterli değildir. Uygulamanın cache dizinleri, geçici dosyaları ve yedek çıktıları da benzer baskı yaratabilir. Bu yüzden log bakımını yaparken aynı anda hangi dizinlerin en hızlı büyüdüğünü de kontrol etmek faydalıdır. Plesk belgelerinin server administration altında disk alanı izlemesini ayrıca vurgulaması da bu yüzden anlamlıdır.
Özet karar şudur: log rotasyonunu sadece temizlik işi gibi değil, servis davranışı, izinler ve disk sağlığıyla birlikte yönetilen bir bakım adımı olarak planlayın. En güvenli yaklaşım, döndürme sonrası servisin logları yeniden açtığını doğrulamak ve log dizinini gereksiz ayrıcalıklardan uzak tutmaktır.