Articles

Configuration des journaux D’erreur et D’accès Apache

Posted by admin

Apache est un serveur HTTP open-source et multiplateforme. Il a beaucoup de fonctionnalités puissantes qui peut être prolongée par une grande variété de modules. Lors de la gestion de serveurs Web Apache, l’une des tâches les plus fréquentes que vous effectuerez est la vérification des fichiers journaux.

savoir comment configurer et lire les journaux est très utile lors du dépannage des problèmes de serveur ou d’application car ils fournissent des informations de débogage détaillées.

Apache écrit les enregistrements de ses événements en deux types de journaux: les journaux d’accès et les journaux d’erreurs., Les journaux d’accès incluent des informations sur les demandes des clients et des informations sur les journaux d’erreurs sur les problèmes du serveur et de l’application.

Cet article décrit comment configurer et lire les journaux D’accès et d’erreurs Apache.

configuration du journal D’accès #

le serveur web Apache génère un nouvel événement dans le journal d’accès pour toutes les demandes traitées. Chaque enregistrement d’événement contient un horodatage et inclut diverses informations sur le client et la ressource demandée. Les journaux d’accès indiquent l’emplacement des visiteurs, la page qu’ils visitent, le temps qu’ils passent sur la page, et bien plus encore.,

Le CustomLog directive définit l’emplacement du fichier journal et le format des messages consignés.

Les plus élémentaires de la syntaxe de la balise CustomLog directive est comme suit:

CustomLog log_file format ;

Le log_file peut être soit par rapport à la balise ServerRoot ou un chemin d’accès complet vers le fichier journal. Les messages de journal peuvent également être acheminés vers un autre programme en utilisant le symbole de canal |.

Le deuxième argument, format spécifie le format du journal des messages., Il peut s’agir d’une définition de format explicite ou d’un pseudo défini par la directive LogFormat.

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combinedCustomLog logs/access.log combined
CustomLog logs/access.log "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""

Pour éviter de répéter le même code plusieurs fois, préférez la définition de la balise LogFormat directive et en l’utilisant comme un surnom dans le CustomLog directive.

pour une liste complète de toutes les chaînes et modificateurs de format, consultez la documentation du module « mod_log_config”.,

Le troisième argument est facultatif et permet d’écrire des messages de log que lorsqu’une condition particulière est remplie. Habituellement, cela se fait en utilisant des variables d’environnement. La condition peut être annulée avec le symbole !.

par exemple, si vous souhaitez exclure les demandes de fichiers css à écrire dans le fichier journal, vous devez utiliser ce qui suit:

SetEnvIf Request_URI \.css$ css-fileCustomLog logs/access.log custom env=!css-file

pour modifier le format de journalisation, vous pouvez soit définir une nouvelle directive LogFormat ou remplacer le format par défaut., En règle générale, il est préférable de définir un nouveau format.

bien que le journal d’accès fournisse des informations très utiles, il prend de l’espace disque et peut affecter les performances du serveur. Si votre serveur manque de ressources et que vous avez un site web occupé, vous pouvez désactiver le journal d’accès.

pour ce faire, il suffit de commenter ou de supprimer la directive CustomLog des sections configuration du serveur principal et serveur virtuel.,

Si vous souhaitez désactiver le journal des accès que pour un hôte virtuel, définissez le premier argument de la balise CustomLog directive /dev/null:

CustomLog /dev/null combined

Configuration du Journal des Erreurs #

Apache écrit des messages à propos de l’application générale et les erreurs de serveur dans le fichier journal des erreurs. Si vous rencontrez des erreurs dans votre application web, le journal des erreurs est le premier endroit où commencer pour résoudre les problèmes.

la directiveErrorLog définit l’emplacement du nom du journal des erreurs., Il prend la forme suivante:

ErrorLog log_file

Si le chemin d’accès à la balise log_file n’est pas absolue, alors il est défini que par rapport à la balise ServerRoot. Les messages d’erreur peuvent également être acheminés vers un autre programme à l’aide du symbole |.

Le LogLevel paramètre définit le niveau de journalisation. Voici les niveaux répertoriés par leur gravité (de faible à élevé):

  • trace1trace8 – Trace messages.
  • debug – les messages de Débogage.,
  • info – les messages d’Information.
  • notice – Avis.
  • warn – Avertissements.
  • error – des Erreurs lors du traitement d’une demande.
  • crit problèmes Critiques. Nécessite une action rapide.
  • alert Alertes. Des mesures doivent être prises immédiatement.
  • emerg – situation d’Urgence. Le système est dans un état inutilisable.

chaque niveau de log inclut les niveaux supérieurs., Par exemple, si vous définissez le niveau de journal de warn, Apache également écrit le error, crit, alert et emerg messages.

lorsque le paramètreLogLevel n’est pas spécifié, il est par défautwarn. Il est recommandé de définir le niveau à au moins crit.

la directiveErrorLogFormat spécifie le format du journal des erreurs., Sur la plupart des distributions Linux, le serveur Apache utilise le format par défaut, ce qui est suffisant dans la plupart des cas.

Hôtes Virtuels et journalisation globale #

le comportement de journalisation et l’emplacement des fichiers peuvent être définis globalement ou par hôte virtuel.

ensuite, les directivesCustomLog ouErrorLog sont définies dans le contexte principal du serveur, le serveur écrit tous les messages de journal dans les mêmes fichiers de journal d’accès et d’erreur., Sinon, si les directives sont placées dans un bloc<VirtualHost>, seuls les messages de journal de cet hôte virtuel sont écrits dans le fichier spécifié.

la directive log définie dans le bloc <VirtualHost> remplace celle définie dans le contexte du serveur.

les hôtes virtuels sansCustomLog ouErrorLog auront leurs messages de journal écrits dans les journaux du serveur global.

pour une meilleure lisibilité, il est recommandé de définir des fichiers journaux d’accès et d’erreurs distincts pour chaque hôte virtuel., Voici un exemple:

Chaque fois que vous modifiez le fichier de configuration, vous devez redémarrer le service Apache pour que les modifications prennent effet.

emplacement des fichiers journaux #

par défaut sur les distributions basées sur Debian telles que Ubuntu , les journaux d’accès et d’erreur sont situés dans le répertoire/var/log/apache2. Sur CentOS, les fichiers journaux sont placés dans le répertoire/var/log/httpd.,

la Lecture et la Compréhension de Fichiers Log Apache #

Les fichiers journaux peuvent être ouvertes et analysées en utilisant les commandes standard comme cat , less , grep , cut , awk , et ainsi de suite.,

Voici un exemple d’enregistrement du fichier journal d’accès qui utilise le format de journal Debian’combine:

décomposons ce que chaque champ de l’enregistrement signifie:

utilisez la commandetail pour regarder le fichier journal en temps réel:

tail -f access.log 

conclusion #

les fichiers journaux vous fournissent des informations utiles sur les problèmes de serveur et la façon dont les visiteurs interagissent avec votre site web.

Apache dispose d’un système de journalisation très configurable qui vous permet de personnaliser les journaux d’accès et d’erreurs en fonction de vos besoins.

Leave A Comment