Apache2 log splitsen per VirtualHost.

Op een Apache2 server die meerdere domein namen host kunnen we de logs opsplitsen naar hostnaam.
Zie dit artikel
om meerdere hosts met Apache2 in te stellen.

Om de log files te spitsen gebruiken we de directive CustomLog in het configuratiebestand van de VirtualHost dat in /etc/apache2/sites-available aanwezig is. In dit voorbeeld gaan we uit van de website cellie.homeip.net.
Let op, er staat /usr/sbin/rotatelogs en niet /usr/sbin/logrotate!

#/etc/apache2/sites-available/cellie.homeip.net
<VirtualHost *:80>
    Servername cellie.homeip.net
    ...
    CustomLog "|/usr/sbin/rotatelogs /var/log/apache2/cellie.homeip.net_access_%d-%m-%Y 86400" vhost_combined
    ErrorLog  "|/usr/sbin/rotatelogs /var/log/apache2/cellie.homeip.net_error_%d-%m-%Y 86400"
</VirtualHost>

Er word voor deze host nu eens per dag -86400s- een logfile in /var/log/apache2 aangemaakt, met de hostname en daarachter de dag van de maand , de maand, en het jaar als bestandsnaam. Een zelfde constructie is mogelijk met het ErrorLog directive. Uit het voorbeeld zullen de volgende bestandsnamen komen:

cellie.homeip.net_access_01-02-2010
cellie.homeip.net_error_01-02-2010

De VirtualHost cellie.homeip.net heeft nu zijn eigen logfiles met de datum en tijd in de bestandsnaam.
Lees de security tips als er meerdere gebruikers toegang hebben tot de server.

De informatie komt van de behoorlijk cryptische handleidingen:
Apache2 rotatelogs manual
Apache2 CustomLog manual
Apache2 ErrorLog manual