Forum Linux.général Config apache : méthode alternative pour des logs individualisés ?

Posté par  .
Étiquettes : aucune
0
19
oct.
2005
Introduction :

Bonjour,

J' "administre" (je préfère mettre des guillemets) un serveur web tournant avec apache depuis peu, et je me heurte a un problème que je n'arrive pas à résoudre. Suite à un plantage du serveur (d'où les guillemets), il a fallu le redémarrer. Depuis, tout fonctionne SAUF que les logs individuels de chaque site hébergé ne sont plus remplis... donc mes utilisateurs n'ont plus accès à leurs stats !


Ma configuration :

Les logs d'apache sont :
- /var/log/httpd/access
- /var/log/httpd/error

Dans /etc/httpd/conf/httpd.conf j'ai les directives
ErrorLog /var/log/httpd/error
CustomLog /var/log/httpd/access combined

Chaqun de mes sites est considéré comme un "virtual hosts".

J'ai logrotate dans une tache cron qui fait la rotation des logs quotidiennement et qui fonctionne bien.


Symptômes et explication du problème :

Habituellement, chaque site hébergé sur mon serveur a son propre log, par exemple /......./monsite/logs/web.log

Depuis le redémarrage du serveur, les fichiers web.log ne sont plus remplis par apache. J'ai remarqué qu'apache ne remplissait plus le fichier /var/log/httpd/access, qui reste vide, et qu'il remplissait à la place /var/log/httpd/access.1.

J'ai donc effacé le fichier /var/log/httpd/access puisqu'il était vide, et redémarré apache, qui désormais écrit bien dans /var/log/httpd/access. J'ai également lancé manuellement un logrotate, en lancant la meme commande qu'execute le cron. Mais les logs de mes sites restent vides ! Je suppose que c'est normal car ce n'est pas logrotate qui dispatche les logs apaches de /var/log/httpd/ dans chaque site.

D'après ce que j'ai pu glanner jusqu'à présent, il faut modifier le fichier de config httpd.conf et ajouter a chaque "virtual host" une directive du genre :
CustomLog /......./monsite/logs/web.log combined

Et je pense que je peux résoudre le problème ainsi. Cependant ces directives ne sont pas présentes dans les fichiers de config de mon serveur, et ça fonctionnait bien avant le plantage du serveur. Donc cela fonctionnait autrement, et c'est cet autre façon de fonctionner qu'il faut que j'arrive à remettre en place.

Alors... quelqu'un connaitrait-il une méthode alternative ? J'ai beau chercher, je ne trouve toujours pas d'autre façon de faire...

Je reviendrai poster si je trouve une solution, en attendant, je reste ouvert à toute suggestion...

Merci.
  • # programme de dispatche

    Posté par  . Évalué à 1.

    Je pense qu'il faut chercher si il y a un programme qui n'est pas programmer pour lancer automatique au démadrage qui faire le dispatche. Il est posible qu'il ce trouve dans /etc/init.d/

    Si non il existe des programme pour dispatcher le fichier log par le virtual host. Vous pouvez les trouver sur http://freshmeat.net/
    • [^] # Re: programme de dispatche

      Posté par  . Évalué à 1.

      J'ai certes omis de le préciser, mais j'ai déjà vérifié si je n'avais rien oublié de lancer depuis mon /etc/init.d/

      Je n'y ai malheureusement rien trouvé concernant les logs d'apache... (à moins que ce soit syslog qui s'en charge, mais franchement je vois pas comment...)
      • [^] # Re: programme de dispatche

        Posté par  . Évalué à 2.

        Bon, je me reponds à moi même, mais des fois que ca intéresse quelqu'un, j'ai finalement pu constater que le dispatch est effectue au moment de l'appel de logrotate par le cron.

        En effet, il y a dans le fichier /etc/cron.daily/logrotate une commande lancee en postrotate qui s'appelle split_logs et qui se charge, sur le gentil serveur tout bleu, de dispatcher les logs.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.