Il modo migliore per ruotare i file di registro di Apache [chiuso]
Domanda
Ho un server Apache con un file di registro degli accessi che supera i 600 MB.Ciò rende davvero difficile cercare il file o analizzarlo.
Quali software o moduli sono disponibili per Apache che creeranno una copia giornaliera del mio file di accesso per renderlo più gestibile?
Soluzione
Hai guardato? logrotate - questo è probabilmente il metodo più semplice, più ampiamente disponibile e ben compreso per raggiungere questo obiettivo.È altamente configurabile e probabilmente farà il 90% di ciò di cui hai bisogno.
Altri suggerimenti
Sono un grande fan di Cronologo.Basta installarlo e convogliare i registri attraverso di esso.Per la rotazione giornaliera dei log, qualcosa del genere funzionerebbe:
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
Abbastanza pratico e, una volta installato, più semplice (secondo la mia esperienza) di logrotate.
Il comando vero e proprio per Windows, che è abbastanza difficile da trovare online, è:
CustomLog '|" "*Apache-Path/bin/rotatelogs.exe"
"**Apache-Path*/logs/backup/internet_access_%d-%m-%y.log" 86400' combined
Dove il bit "internet_access" è il nome che scegli per i tuoi file, 86400 è il numero di secondi in un giorno.Devi modificare il percorso Apache nella directory pertinente in cui hai installato Apache.
logrotate
logrotate
è probabilmente la soluzione migliore.Utilizzare il file /etc/logrotate.conf
per modificare le impostazioni per tutti i tuoi registri.Il tuo furgone cambia weekly
A daily
quindi i tronchi vengono ruotati ogni giorno.Inoltre, potresti voler aggiungere compress
quindi gli archivi sono compressi.Se non ti interessano i vecchi registri, puoi impostare la rotazione rotate 4
a qualcosa di più basso.
CustomLog "|bin/rotatelogs /var/logs/logfile 5M" comune
Questa configurazione ruoterà il file di registro ogni volta che raggiunge una dimensione di 5 megabyte.
ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"
Questo sarebbe il modo migliore per reindirizzare i log di Apache.Non è necessario compilare la mod con httpd.
rotatelog.exe o cronolog.exe su sistema operativo Windows.Sono utilizzati nel comando pipe in http.conf mod_log_rota Modulo aggiuntivo per Apache solo per la rotazione del registro di accesso Logrotate solo per OS UNIX.
Ho un modulo che fa questo per te senza la necessità di tubi esterni, ecc.:
http://www.poptart.org/bin/view/Poptart/ModAutorotate
Ho provato ad aggiungerlo alla raccolta dei moduli Apache ma sembra che non funzioni più da un po' di tempo.