Jeder von uns kennt das Problem mit grossen Logfiles, die unter Umständen den ganzen Festplattenplatz für sich beanspruchen. Wenn das System läuft vergisst man sehr schnell die Logiles regelmäßig unter die Lupe zu nehmen. Besonders schnell wachsen hierbei Logfiles von Web- oder Mailservern an, welche sich jedoch meist mit einfachen Bordmitteln problemlos in den Griff bekommen lassen.
Den originalen Artikel von Jesse Andrews finden Sie hier.
Wir gehen bei unserem Beispiel davon aus, dass die Railsapplikation mit Capistrano an folgende Position auf dem Webserver gespielt wird:
set :deploy_to, "/home/deploy/app"
Capistrano erzeugt dann automatisch folgende Verzeichnisse:
/home/deploy/app/shared/log & /home/deploy/app/current/tmp
Das tmp-Verzeichnis hat für Phusion Passenger eine besondere Bedeutung welche wir uns in unserer logrotate-Konfiguration zu Nutze machen:
vi /etc/logrotate.d/passenger
1 2 3 4 5 6 7 8 9 10 11 | /home/deploy/app/shared/log/*.log {
daily
missingok
rotate 30
compress
delaycompress
sharedscripts
postrotate
touch /home/deploy/app/current/tmp/restart.txt
endscript
} |
daily:
Das Logfile wird jeden Tag neu erstellt
missingok:
Keine Fehler bei einem nicht vorhandenen Logfile
rotate 30:
Logfiles rotieren nach 30 Tagen
compress:
Logfiles werden in .tar.gz umgewandelt, spart teilweise bis zu 90% Plattenplatz
delaycompress:
Das Vortages Logfile komprimieren, so dass Passenger noch ins aktuelle Logfile schreiben kann
postrotate/endscript:
Mit dem touch Kommando wird eine restart.txt erstellt welche dann Passenger dazu veranlasst neu zu starten
sharedscripts:
postrotate nur einmal ausführen, nicht für alle Logfiles im /home/deploy/app/shared/log
Manuell kann man mit folgendem Kommando das Rotieren der Logfiles testen:
logrotate -f /etc/logrotate.d/passenger
Hiermit wird dann ein .1 Logfile für alle Logfiles im /home/deploy/app/shared/log Verzeichnis erstellt und Passenger startet neu.
Schlagworte: logfiles, phusion passenger


(5 Bewertung(en), durchschnittlich: 4.40 (max. 5)