Comment configurer les formats de journal D’accès et D’erreur personnalisés dans Nginx

Comment configurer les formats de journal D’accès et D’erreur personnalisés dans Nginx

le serveur HTTP Nginx dispose d’une fonctionnalité de journalisation phénoménale hautement personnalisable. Dans cet article, nous expliquerons comment configurer vos propres formats pour les journaux d’accès et d’erreur pour Nginx sous Linux.

le but de ce guide est de vous aider à comprendre comment les journaux sont générés, afin de configurer des formats de journaux personnalisés à des fins de débogage, de dépannage ou d’analyse de ce qui se déroule au sein de votre serveur web ainsi que des applications web (telles que les demandes de suivi).,

lire aussi: 4 bons outils Open Source de surveillance et de gestion des journaux Pour Linux

Cet article est composé de trois sections qui vous éclaireront sur la configuration des journaux d’accès / d’erreur et sur la façon d’activer la journalisation conditionnelle dans Nginx.

configuration des journaux D’accès dans Nginx

sous Nginx, toutes les demandes des clients au serveur sont enregistrées dans le journal d’accès dans un format spécifié à l’aide du module ngx_http_log_module.

La valeur par défaut du fichier journal est le journal/l’accès.,log (généralement /var/log/NGINX/access_log sur les systèmes Linux) et le format par défaut pour la journalisation est normalement le format combiné ou principal (cela peut varier d’une distribution à l’autre).

Le access_log directive (applicable dans le http, serveur, site, si dans la localisation et la limite, sauf contexte) est utilisé pour définir le fichier journal et le log_format directive applicable en vertu de la http contexte) est utilisé pour définir le format du journal. Le format du journal est décrit par des variables communes et des variables générées uniquement au moment de l’écriture d’un journal.,

la syntaxe pour configurer un format de journal est:

log_format format_name 'set_of_variables_to_define_format';

et la syntaxe pour configurer le journal d’accès est:

ce qui suit est un extrait du fichier de configuration Nginx par défaut /etc/nginx/nginx.conf sur CentOS 7.

/etc/nginx/nginx.conf

ce format de journal donne l’entrée de journal suivante.

ce qui suit est un autre format de journalisation utile que nous utilisons pour tracer les demandes vers nos applications web en utilisant certaines des variables par défaut, il a surtout l’ID de la demande et enregistre les détails de l’emplacement du client (pays, code de pays, région et ville).,

/etc/nginx/nginx.conf

Vous pouvez l’utiliser comme ceci:

access_log /var/log/nginx/access.log custom;

Ceci va produire une entrée de journal qui s’affiche comme ceci.

Vous pouvez spécifier plusieurs journaux en utilisant les directives access_log au même niveau, ici nous utilisons plus d’un fichier journal dans le contexte http.

/etc/nginx/nginx.,conf

Voici des exemples de configurations de journalisation plus avancés, utiles pour les formats de journaux contenant des variables liées à la compression et pour la création de fichiers journaux compressés:

access_log /var/log/nginx/custom_log custom buffer 32k;access_log /path/to/log.gz compression gzip flush=5m;

configuration des journaux D’erreurs dans Nginx

dans le cas où Nginx Ces problèmes relèvent de différents niveaux de gravité: debug, info, notice, warn, error (c’est le niveau par défaut et fonctionne globalement), crit, alert ou emerg.

Le fichier journal par défaut est log/error.,journal, mais il est normalement situé dans /var/log/nginx/ sur les distributions Linux. La directive error_log est utilisée pour spécifier le fichier journal, et elle peut être utilisée dans le contexte main, http, mail, stream, server, location (dans cet ordre).

Vous devriez noter que:

  • les Configurations dans le contexte principal sont toujours héritées par la baisse des niveaux dans l’ordre ci-dessus.
  • et les configurations des niveaux inférieurs remplacent les configurations héritées des niveaux supérieurs.,

Vous pouvez configurer la journalisation des erreurs en utilisant la syntaxe suivante:

error_log /path/to/log_file log_level;

Par exemple:

error_log /var/log/nginx/error_log warn; 

cela demandera à Nginx de consigner tous les messages de type warn et les messages crit, alert et emerg de niveau de journal plus sévère.

dans l’exemple suivant, les messages des niveaux crit, alert et emerg seront enregistrés.

error_log /var/www/example1.com/log/error_log crit;

considérons la configuration ci-dessous, ici, nous avons défini la journalisation des erreurs à différents niveaux (dans le contexte http et serveur)., En cas d’erreur, le message est écrit dans un seul journal d’erreur, le plus proche du niveau où l’erreur est apparue.

/etc/nginx/nginx.conf

Si vous utilisez plusieurs directives error_log comme dans la configuration ci-dessous (même niveau), les messages sont écrits dans tous les journaux spécifiés.

/etc/nginx/nginx.conf

configuration de la journalisation conditionnelle dans Nginx

Dans certains cas, nous pouvons vouloir que Nginx effectue la journalisation conditionnelle des messages., Tous les messages ne doivent pas être enregistrés par Nginx, nous pouvons donc ignorer les entrées de journal insignifiantes ou moins importantes de nos journaux d’accès pour des instances particulières.

nous pouvons utiliser le module ngx_http_map_module qui crée des variables dont les valeurs dépendent des valeurs d’autres variables. Les paramètres à l’intérieur d’un bloc de carte (qui ne doit exister que dans le contenu http) spécifient un mappage entre la source et les valeurs résultantes.

pour ce type de paramètre, une requête ne sera pas enregistrée si la condition est évaluée à"0” ou une chaîne vide., Cet exemple exclut les requêtes avec les codes D’état HTTP 2xx et 3xx.

/etc/nginx / nginx.conf
http{map $status $condition {~^ 0; default 1;}server{access_log /path/to/access.log custom if=$condition;}}

Voici un autre exemple utile pour déboguer une application web en phase de développement. Cela ignorera tous les messages et ne consignera que les informations de débogage.

/etc/nginx/nginx.conf

Vous pouvez trouver plus d’informations, y compris la journalisation vers syslog ici.

C’est tout pour l’instant! Dans ce guide, nous avons expliqué comment configurer le format de journalisation personnalisé pour les journaux d’accès et d’erreur dans Nginx., Utilisez le formulaire de commentaires ci-dessous pour poser des questions ou partager vos réflexions sur cet article.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *