Quand je monte un serveur Web avec de multiples virtuals hosts, j’utilise une arborescence qui m’est spécifique.

Je place les fichiers d’un site dans un dossier /var/www/domain.tld/sub.domain.tld/http et les logs dans un dossier /var/www/domain.tld/sub.domain.tld/logs

Chaque site à donc ses propres fichiers de logs Apache, Nginx ou PHP, ce qui permet de consulter facilement et rapidement les logs d’un site Web, mais ce qui empêche aussi la rotation des logs configurées par défaut lors de l’installation de ces mêmes programmes.

Il faut donc créer des configurations de rotation spécifiques afin que logrotate, le programme en charge de la rotation des logs, soit en mesure d’effectuer correctement la rotation de tout ces fichiers de logs.

Voici ma configuration pour Apache (à placer dans un fichier /etc/logrotate.d/apache2vhost, par exemple)

Voici ma configuration pour Nginx (à placer dans un fichier /etc/logrotate.d/nginxvhost, par exemple)

Voici ma configuration pour PHP-FPM (à placer dans un fichier /etc/logrotate.d/phpvhost, par exemple)

Ces configurations sont bien entendu à ajuster en fonction de vos propres configurations : par exemple, PHP-FPM génère par défaut un fichier php5-fpm.log.slow qui ne se termine pas par “.log” …