Apache ile Logrotate vs Rotatelogs'un artıları ve eksileri nelerdir?


11

Apache, logrotate ile gerçekleşen günlükleri döndürürken apache'yi yeniden başlatmama avantajına sahip olan rotatelogs adlı bir araç sağlar. Bu logtate üzerinde rotatelogs kullanmak için yeterli kriterler ise konuşmak için yeterli deneyimim yok.

Benim sorularım, bu iki araçtan birini veya birini kullanarak gerçek yaşam deneyimi olan ve girdiniz ne olurdu?

Ne önerirsiniz ve neden?

Yanıtlar:


7

Diğer tüm günlükleri döndürecek olan bu olduğundan çoğu insan için logrotate'i öneriyorum (KISS: Simple Stupid). Logrotate tüm Apache'yi yeniden başlatmaz, bunun yerine ona tüm günlük dosyalarını yeniden açmasını ve çocukları yeniden başlatmasını söyleyen bir sinyal gönderir. Bu sinyal çocukların hemen yeniden başlamasına (indirmeleri kesintiye uğratacak) SIGHUP veya zarif bir yeniden başlatma yapan SIGUSR1 olabilir. SIGUSR1 ile, tüm çocukların doğal olarak öleceğini düşünene kadar günlük işlemeyi ertelemeniz gerekir. Her iki durumda da, muhtemelen günlüklerinizi analiz etmek ve gün veya haftadaki en düşük trafik süresi için zamanlamak istersiniz.

Borulu günlükler daha güçlü bir çözüm gibi görünüyor. Büyük bir avantajı, merkezi bir günlük sistemi kullanmanıza ve web sunucusunun kendisini almanıza izin vermesidir. Kılavuzun kendisi şöyle diyor:

Koşullu günlüklemede olduğu gibi, borulu günlükler çok güçlü bir araçtır, ancak çevrimdışı son işlem gibi daha basit bir çözümün mevcut olduğu yerlerde kullanılmamalıdır.

Eğer yoksa Yani görünüşe göre, borulu günlük kullanmayın gerek onu. Geçmişte borulu loging'i günlükleri filtrelemek için hacky bir yol olarak kullandım ve hiç problem yaşamadım.


Apache'nin logrotate dosyalarıyla birlikte postrotate betiği bir SIGHUP göndermektir, bu da Apache'nin tüm çocukları sonlandırmasına ve yeniden başlatmasına neden olur. O sırada etkin olan tüm bağlantılar sonlandırılır.
Warner

Ben zarif bir yeniden başlatma ağır yük taşıyan sunucular ile çok iyi çalışmadığı bir yerde bir yorum okudum. Ama gerçekten çok fazla alternatif olduğunu düşünmüyorum.
Mohan Gulati

SIGHUP ile logrotate oldukça standarttır. Onun hakkında endişe etmem.
Warner

2

Daha önce ikisini de kullandım. Rotatelogs kullanmanın erişim günlüklerini yönetmede ve apache aksaklık süresini istemiyorsanız çok kullanışlı bir araç olduğunu gördüm. Yüksek hacimli bir sitede bunu tavsiye ederim, bulduğum tek sorun, günlükleri yönetmek istiyorsanız, günlükleri temizlemek veya yedekleme sunucusuna taşımak için ayrı bir komut dosyasına sahip olmanız gerektiğiydi. ihtiyacına bağlıdır. Logrotate ile log dosyalarının nasıl işleneceğine dair daha fazla seçeneğiniz vardır, tek sorun logrotate'in önceki yanıtta açıklandığı gibi çalışması, apache'yi yeniden başlatmanız gerekecektir.

Temel olarak her şey seçime gelir, kesintisiz olarak çalışmak için apache'ye ihtiyacınız varsa, o zaman yönetmek için harici bir cron komut dosyasıyla rotatelog'ları, aksi takdirde logrotate yeterli olacaktır. Yüksek trafiğiniz olduğunda günlükleri döndürmemek için logrotate cron'u ayarladığınızdan emin olun.

Son olarak, sistem günlüğünüzde apache günlüğüne sahip olmak istiyorsanız her zaman Redhat Tabanlı linux'larda bulunan logger komutunu kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.