2008-09-04 36 views
59

600 MB'lik bir erişimli bir erişim günlük dosyasına sahip bir Apache sunucum var. Bu dosyayı aramak veya ayrıştırmak gerçekten zor hale getirir.
Apache için hangi yazılım veya modüller mevcut olup, erişim dosyamın günlük bir kopyasını daha kolay yönetilebilir kılacak mı?Apache günlük dosyalarını döndürmenin en iyi yolu

+7

Şanslısınız - benim karşı karşıya olduğum kişi 2,4 GIGABYTES :( –

+0

Gerçekten bir Apache modülünü veya çalışan sisteme (logrotate veya cron gibi) bağlı bir şey olup olmadığını belirtebilirsiniz. Bu bana cevap vermekte yardımcı olabilir - bence - basit bir soru – Kariem

+1

14GB burada! Sadece bir yıl boyunca kayıtlar. – Liam

cevap

45

logrotate'a baktınız - bu muhtemelen bunu gerçekleştirmenin en basit, en yaygın kullanılabilir ve iyi anlaşılmış bir yöntemidir. Oldukça yapılandırılabilir ve muhtemelen ihtiyacınız olanın% 90'ını yapacak.

+15

Brian'ın yanıtı gibi bir kullanım örneği gerçekten yararlı olacaktır. Teşekkürler. – Ryall

+1

"Logrotate" işlevinin olumsuz tarafı, işlem yeniden başlayana kadar günlük dosyasının eski dosya adına yazılmaya devam etmesidir. – MarkHu

6

logrotate muhtemelen en iyi çözümdür. Tüm günlüklerinizin ayarlarını değiştirmek için '/etc/logrotate.conf' dosyasını kullanın. Günlük olarak 'günlük' olarak 'günlük' olarak değiştirilirsiniz, böylece günlükler her gün döndürülür. Ayrıca, arşivleri sıkıştırmak için 'sıkıştırma' eklemek isteyebilirsiniz. Eski günlükleri umursamıyorsanız, '4'ü döndür' seçeneğini daha düşük bir değere ayarlayabilirsiniz.

+0

İlgileniyorum - bu ve apache tarafından sağlanan 'rotatelogs' arasındaki farklar nelerdir? Ve apache kılavuzu neden logrotate'den bahsetmiyor (yine de cronologa atıfta bulunuyor)? –

+1

Sadece bir varsayım: bunun nedeni, Apache'nin çalıştığı tüm sistemlerde logrotate'ın mevcut olmaması olabilir. Tüm sistem günlüklerini ve tabii ki Apache'nin günlük dosyalarını açmak için kullanılan Linux kurulumlarında kullandım. – Kariem

26

Ben Cronolog büyük bir hayranıyım. Sadece günlüklerinizi yükleyip pipetleyin. Günlük günlük rotasyon için, böyle bir şey çalışacak: logrotate daha (benim durumumda) daha kolay,

ErrorLog "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/error.log" 
CustomLog "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/access.log" combined 

Oldukça kullanışlı ve bir kez yüklü.

+2

cronolog kullandığımda, günlük dosyası 2GB veriye ulaştığında bazı sorunlarla karşılaştım. Bu noktada, dosyayı kaldırdığım/yeniden adlandırana kadar daha fazla günlük kaydı ve apache durmadı. O zamandan beri ben logrotate kullanıyorum ve her şey yolunda :) – maxgalbu

11

çevrimiçi bulmak oldukça zordur Windows için gerçek komut şöyledir:

"internet_access" bit dosyalarınız için seçim adıdır
CustomLog '|" "*Apache-Path/bin/rotatelogs.exe" 
    "**Apache-Path*/logs/backup/internet_access_%d-%m-%y.log" 86400' combined 

, 86400 tane saniye sayısı ise gün. Apache-Path'i Apache'yi kurduğunuz ilgili dizine değiştirmelisiniz. Windows os.

+0

Yolların etrafındaki alıntıları sarmakla uğraşmak yerine "c:/Progra ~ 1/..." gibi onları kısaltmaya başladım. bir süre, ama sonunda yollarda eğik çizgi gerekli olduğunu anladım. – Pedro

+1

Yoldaki ters eğik çizgileri kullanmayın, işe yaramaz! Alternatif olarak, [mod_log_rotate] 'i kullanabilirsiniz (http://www.sitebuddy.com/mod_log_rotate). Bu modun kullanılması ayrıca Windows altında cmd.exe sorunlarını önler. – s106mo

+0

Günlük döndürme uygulamak için Apache2.4'de (Windows 8) bazı sorunlar yaşadım. Ama aşağıda olduğu gibi sabit. httpd.conf dosyasında aşağıdaki satırı ServerRoot "c:/Apache24" add "| bin/rotatelogs günlükleri/access.log% Y-% m-% d 86400" # Apache yükleme yolu #CustomLog ortak # Yukarıdakiler işe yaramaz, ancak .exe eklendiğinde işe yaradı. CustomLog "| bin/rotatelogs.exe günlükleri/access.log.% Y-% m-% d 86400" ortak – user292049

1

rotatelog.exe veya cronolog.exe dosyaları. Http: // Mod_log_rotate ek modülünde boru komutunda, YALNIZCA erişim günlüğü dönüşü için YALNIZCA Logrotate unix işletim sistemi için kullanılır.

http://www.poptart.org/bin/view/Poptart/ModAutorotate

Ben Apache eklemek için çalıştı toplama modülleri ettik ama bunun için kırık olduğu görünüyor:

0

Ben D borular vb gerek kalmadan sizin için yapar bir modül var bir süre şimdi.

2

CustomLog "| bin/rotatelogs/var/günlükleri/logfile 5M" ortak

Bu konfigürasyon 5 megabaytta bir boyuta ulaştığında zaman günlük dosyasına dönecektir.

Bu Apache günlüklerini yeniden yönlendirmenin en iyi yolu olur. Httpd ile mod derlemeye gerek yok.

+0

Eski dosyaları silmek veya üzerine yazmak için bazı rotateloglar seçeneği var mı? – Tobia

İlgili konular