In meiner kleinen Server Welt gibt es ein paar Apaches mit jeweils einigen VirtualHosts. Um ein wenig den Überblick zu behalten, schreibt jeder VirtualHost seine eigenen Logfiles. Da FreeBSD mit newsyslog(8) ein fähiges Tool zum rotieren der Logfiles mitbringt, nutzen wir einfach selbiges. In diesem kurzen Artikel beschreibe ich wie.
Apache-Logs schreiben
Na das ist eigentlich Off-Topic, aber dennoch. Ich für meinen Teil lasse alle VirtualHosts und auch den Hauptserver Logdateien in das Verzeichnis /var/log/apache24/
schreiben. Das sieht dann zum Beispiel so aus:
1 2 3 4 5 6 7 8 9 10 | <VirtualHost *:443> ServerName www.example.org ServerAlias example.org ServerAdmin webmaster@example.org DocumentRoot "/usr/local/www/wordpress" ErrorLog "/var/log/apache24/example.org-error.log CustomLog "/var/log/apache24/example.org-access.log" combined Include etc/apache24/Includes/ssl.inc </VirtualHost> |
Newsyslog.conf
Newsyslog(8) ist im Basesystem von FreeBSD. Das heißt, jedes Mal wenn man das System updateted, läuft der mergemaster auch über dessen Config files. Abhilfe dafür schafft die Möglichkeit Configs zu includen. Wir legen also unter /usr/local/etc/newsyslog.conf.d ein neues file Names apache24 an mit folgenden Inhalt:
1 2 | # logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] /var/log/apache24/*.log www:www 440 12 * $M1D0 GZ /var/run/httpd.pid 30 |
Kurz gesagt: newsyslog…
- Rotiert alle .log files im Verzeichnis.
- Schenk die rotierten dann dem User www und der Gruppe www.
- Setzt die Permissions so, dass eben diese das auch lesen können (mode).
- Das ganze passiert 12 Mal (count) (Man hat also das aktuelle Logfile plus 12 alte.).
- Die Größe ist egal
*
(size). $M1D0
(when) sagt aus: Rotiere jeden 1 Tag im Monat um 0 Uhr.- Das
GZ
ist folgendes: G macht das * im Dateinamen möglich, Z nimmt bzip zum packen. - Wenn das passiert ist, schickt es einen graceful restart
30
an den Prozess mit der PID in/var/run/httpd.pid
Das wars… Nagut… ein service newsyslog restart
fehlt noch, aber schon werden alle Logfiles in der Nacht zum ersten rotiert…