3 votes

Apache LogFormat : enregistrer le nom de domaine complet tout le temps

Nous avons un serveur qui héberge de nombreux domaines différents. Comme ce serveur est supprimé progressivement, nous voulons savoir s'il y a encore des domaines qui pointent vers ce serveur. J'aimerais que les journaux d'Apache signalent ces noms de domaine.

Nos journaux Apache montrent les données suivantes :

163.172.66.133 - - [16/Déc/2016:11:37:40 +0100] "GET /fr/page/test HTTP/1.1" 301 - "-" "Mozilla/5.0 (compatible ; AhrefsBot/5.1 ; + http://ahrefs.com/robot/ )"

Il doit comporter le nom de domaine complet de la page demandée.

163.172.66.133 - - [16/Dec/2016:11:37:40 +0100] "GET https:// www.domainname.com /fr/page/test HTTP/1.1" 301 - "-" "Mozilla/5.0 (compatible ; AhrefsBot/5.1 ; + http://ahrefs.com/robot/ )"

J'utilise le LogFormat suivant :

LogFormat "%h %l %u %t \"%m http://%v:%p%U\" %>s %b" common

Parfois, je vois le nom de domaine complet, la plupart du temps non.

Comment puis-je faire en sorte que les noms de domaine soient affichés en permanence ?

4voto

Seth Points 8547

Si vous regardez le documentation officielle pour le format du journal, vous verrez que l'indicateur %v o %V pourrait être ce qui vous intéresse car il vous donnerait le nom de serveur canonique qui est configuré. Il s'agit donc du nom de serveur configuré dans le bloc qui a finalement répondu à la demande.

Comme le LogFormat Si la ligne que vous avez fournie contient déjà cet identifiant, il est probable qu'il existe plus d'une configuration qui définit le format du journal et que les lignes de journal qui ne contiennent pas l'hôte sont basées sur ce format différent. Votre format devrait vous permettre d'obtenir des lignes toujours formatées comme dans votre deuxième exemple.

Il se peut que vous ayez configuré des domaines génériques et que vous ne soyez pas en mesure de voir quel nom de famille complet a été demandé. Une question intitulée L'utilisation de %v dans la définition du format de journal d'Apache correspond au nom du serveur au lieu du serveur virtuel spécifique demandé. suggère que vous pourriez utiliser l'identifiant %{Host} pour obtenir le "point de vue du client", donc la partie hôte de l'en-tête de la requête.

Pour trouver tous les fichiers de configuration qui contiennent un LogFormat vous pourriez jeter un coup d'œil à une autre question comme la suivante : Comment trouver tous les fichiers contenant un texte spécifique sous Linux ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X