Apache2 schreibt nach Logrotate weiterhin in alte Logs
16. November 2007 von Lars SchenkUnter Debian Etch habe ich auf einer EC2 basierten virutellen Maschine die Apache2 Logs nach /mnt/ verlagert, weil die Logs beim Rebundlen des Images nicht included werden sollen und ich somit alle flüchtigen Dateien in einen /mnt Folder auslagere, den ich auch nicht über S3 persistent mache.
Dabei habe ich das Problem umgehen müssen, das Apache2 nach dem Logrotate weiterhin in die alten Logs schreibt und die neu angelegten Logs leer bleiben (0 Bytes). Abhilfe bringt das Ersetzen der ‘/etc/init.d/apache2 restart > /dev/null’ Anweisung in /etc/logrotate.d/apache2 durch apache2ctl:
/mnt/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f /var/run/apache2.pid ]; then
/usr/sbin/apache2ctl restart > /dev/null
fi
endscript
}
Auf einer anderen Debian Etch Maschine (die jedoch nicht EC2 basiert ist) wo die Logs am original Ort liegen, gab es das Problem nicht. Beide Maschinen nutzen awstats. Einen grundlegenden Unterschied der Apache2 Config konnte ich auf die Schnelle nicht erkennen, so dass mir die Ursache für das Problem (warum schafft ‘/etc/init.d/apache2 restart’ es nicht was apache2ctl vermag - das Verwenden der neuen Logs anzustossen) nicht ersichtlich ist und ich mit diesem Workaround erstmal leben muss.
Im /etc/init.d/apache2 Script ist der apache2ctl Aufruf noch eingebetet in folgenden Block:
restart | force-reload)
log_begin_msg "Forcing reload of web server (apache2)..."
if ! apache_sync_stop; then
log_end_msg 1
fi
if $APACHE2CTL start; then
log_end_msg 0
else
log_end_msg 1
fi
;;
*)
Die Funktion apache_sync_stop, die wiederum die apache_stop Funktion aufruft, wird wohl bei mir scheitern - aber was da genau schief… muss später mal ergründet werden.
Kategorie: Virtualisierung
Tags: apache2, logrotate
Ich höre gerade






















Am 18. November 2007 um 21:06 Uhr
Mich würde es interessieren, was da schiefläuft-und ich wäre froh, wenn du uns darüber auf dem Laufenden hälst, denn du hast doch so einige gute Gedanken, die mir so noch gar nicht gekommen sind diesbezüglich.