Hangi günlük döndürme aracını tercih edersiniz?
Hangi günlük döndürme aracını tercih edersiniz?
Yanıtlar:
Deneyimlerime göre, logrotate harika. Çok esnektir ve çoğu yazılımla iyi çalışır.
Bununla birlikte, bazı sorunlar var ve kronolog öncelikle bir web günlüğü rotasyon tesisi olduğundan, logrotate + apache ile yaşadığım problemi yazacağım:
Günlükleri döndürürken, logrotate access.log.1 olarak yeniden adlandırsa bile, apache inode'a yazarken access.log.1'e yazmaya devam edecek gibi bir günlüğün döndürüldüğünü bildirmeliyiz ve dosyayı yeniden adlandırmak inode numarasını etkilemez.
Debian etch (ve muhtemelen diğer birçok dağıtımda), apache günlüklerini döndürmek için logrotate kullanılıyor. Şimdi, apache'nin mevcut bağlantıları sunmayı bitirdikten sonra apache alt işlemlerinin çıkmasını öneren zarif bir yeniden başlatmaya sahip, apache daha sonra yapılandırmasını yeniden okuyor, yeni bir günlük dosyasına yazmaya başlayan yeni alt işlemleri ortaya çıkarıyor (Önceki döndürülmüş).
Bu harika bir çözüm gibi görünür, ancak zarif yeniden başlatma her zaman belirli koşullarda (ağır yük gibi) çalışmaz, bu yüzden debian geliştiricileri apache logrotate yapılandırmasında zarif bir yeniden başlatma yerine apache yeniden başlatmayı kullanmaya karar verdiler. Ne yazık ki bu, tüm bağlantıların bir kerede düşmesine neden olur, bu da yoğun yüklü siteler için çok kötüdür. Ayrıca, apache'nin yeniden başlatılması apache'nin durdurulması ve başlamaması gibi sorunlara da neden olabilir (bazı yük durumlarında da), ayrıntılar için aşağıdaki hata bağlantılarına bakın.
Sonuç olarak, logrotate harika, ancak belirli programlar için belirli sorunlara yol açabilir. Cronolog ile pek fazla deneyimim yok, ancak günlükleri bir borudan yazarken, günlük dosyalarını döndürürken herhangi bir apache yeniden yüklemesi gerektirmez, bu temelde yukarıda açıklananları çözer.
İlgili logrotate / apache debian hataları:
Kronolog tercih ederim, ama gerçekten güçlü bir tercih değil.
cron tarafından başlatıldığı yerde logrotate ve döndürme işlemi olması gereken bir sistem bir nedenle kapalıysa, günlük dosyalarınız döndürülmez.
Ayrıca günlük dosyalarının (% Y% m.combined.access.log) tarihine sahip olmasını seviyorum çünkü bu günlükleri uzun süre saklıyorum. Çoğu sistemde, varsayılan olarak apache logrotate, access.log, access.log.1 vb. Dosyalara isim verir. Logftate'de logrotate ile bir tarih kullanmak mümkün olabilir, ancak son baktığımda nasıl yapacağımı anlayamadım.
Sadece hiç kullanılmamış logrotate. Debian'ın varsayılan olarak kullandığı şeydir ve hiç şikayet etmedim.
Ben neredeyse sadece kullanmak cronolog
üzerine logrotate
.
logrotate
Debian ile birlikte gelir ve posta sunucusu günlükleri gibi sistem hizmetleri için çalışmaya devam etmesine izin veririm. Ancak Apache ve lighttpd
günlük dosyaları için hepsi bu cronolog
.
Kullanmamın nedenlerinden cronolog
biri, tüm yapılandırmanın web sunucusu yapılandırmasının günlük dosyası satırında gerçekleşmesidir
örneğin bir lighttpd
yapılandırma dosyasına şunları koyabilirsiniz:
accesslog.filename = "|/usr/bin/cronolog --symlink=/var/log/webs/access.log /var/log/webs/%Y/%W-access.log"
Ve tüm diğer yapılandırma olmadan her hafta yeni bir günlük dosyası olsun. Veya yaratıcı olabilir ve şöyle bir şey yapabilirsiniz:
accesslog.filename = "|/usr/bin/cronolog --symlink=/var/log/webs/access.log /var/log/webs/%Y/%m/%a-access.log"
Ve haftanın gününe göre trafiği gösteren bir günlük dosyası alın. örneğin tüm Pazarlar, tüm Salı günleri.
Daha da iyisi, sunucu herhangi bir süre kapalı kalsa bile, yeniden başlatma sırasında doğru günlük dosyasının kullanılacağıdır.