Hoe aangepaste toegangs-en Foutlogformaten te configureren in Nginx

Hoe aangepaste toegangs-en Foutlogformaten te configureren in Nginx

Nginx HTTP server heeft een fenomenale logfunctie die zeer aanpasbaar is. In dit artikel zullen we uitleggen hoe je eigen formaten kunt configureren voor toegangs-en foutlogboeken voor Nginx in Linux.

het doel van deze gids is om u te helpen begrijpen hoe logboeken worden gegenereerd, zodat aangepaste logformaten kunnen worden geconfigureerd voor het debuggen, het oplossen van problemen of het analyseren van wat zich binnen uw webserver en webtoepassingen (zoals traceringsaanvragen) ontvouwt.,

Lees ook: 4 Goede Open Source Log Monitoring en beheer Tools voor Linux

Dit artikel bestaat uit drie secties die u zullen informeren over het configureren van toegang / fout logs en hoe u conditioneel loggen in Nginx kunt inschakelen.

Access Logs configureren in Nginx

onder Nginx worden alle clientaanvragen naar de server opgenomen in de access log in een opgegeven formaat met behulp van de ngx_http_log_module module.

het standaard logbestand is log/access.,log (meestal/var/log/nginx / access_log op Linux systemen) en het standaard formaat voor loggen is normaal gesproken het gecombineerde of hoofdformaat (dit kan variëren van de ene distro naar de andere).

De access_log-richtlijn (van toepassing in de http, server, locatie, indien In locatie en limiet behalve context) wordt gebruikt om het logbestand in te stellen en de log_format-richtlijn (alleen van toepassing in de http-context) wordt gebruikt om het logformaat in te stellen. Het log-formaat wordt beschreven door gemeenschappelijke variabelen, en variabelen die alleen gegenereerd op het moment dat een log wordt geschreven.,

de syntaxis voor het configureren van een log-indeling is:

log_format format_name 'set_of_variables_to_define_format';

en de syntaxis voor het configureren van toegangslog is:

het volgende is een uittreksel uit het standaard Nginx-configuratiebestand /etc/nginx/nginx.conf op CentOS 7.

/ etc/nginx / nginx.conf

Dit logformaat levert het volgende logbestand op.

het volgende is een ander nuttig logboekformaat dat we gebruiken voor het traceren van verzoeken naar onze webapplicaties met behulp van enkele van de standaardvariabelen, het belangrijkste heeft de aanvraag-ID en logt clientlocatiedetails (land, landcode, regio en stad).,

/ etc/nginx / nginx.conf

u kunt het als volgt gebruiken:

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

Dit zal een log invoer produceren die er zo uitziet.

u kunt meerdere logs opgeven met behulp van de access_log-richtlijnen op hetzelfde niveau, hier gebruiken we meer dan één logbestand in de http-context.

/ etc/nginx / nginx.,conf

de volgende voorbeelden zijn meer geavanceerde logboekconfiguraties, die nuttig zijn voor logformaten die compressie-gerelateerde variabelen bevatten en voor het maken van gecomprimeerde logbestanden:

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

het configureren van foutlogboeken in Nginx

in het geval dat Nginx problemen ondervindt, registreert het informatie daarover in het foutlogboek. Deze problemen vallen onder verschillende ernstniveaus: debug, info, notice, warn, error (dit is het standaardniveau en werkt wereldwijd), crit, alert of emerg.

het standaard logbestand is log / error.,log, maar het bevindt zich normaal gesproken in/var/log/ nginx / op Linux distributies. De error_log richtlijn wordt gebruikt om het logbestand op te geven, en het kan worden gebruikt in de Main, http, mail, stream, server, locatie context (in die volgorde).

u dient ook op te merken dat:

  • configuraties in de hoofdcontext altijd worden overgenomen door lagere niveaus in de bovenstaande volgorde.
  • en configuraties in de lagere niveaus overschrijven de configuraties overgenomen van de hogere niveaus.,

u kunt foutregistratie configureren met behulp van de volgende syntaxis:

error_log /path/to/log_file log_level;

bijvoorbeeld:

error_log /var/log/nginx/error_log warn; 

Dit zal Nginx instrueren om alle berichten van het type warn en meer ernstige log level crit, alert, en emerg berichten te loggen.

in het volgende voorbeeld worden berichten van crit -, alert-en emerg-niveaus gelogd.

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

overweeg de onderstaande configuratie, hier hebben we foutlogging gedefinieerd op verschillende niveaus (in de http-en servercontext)., In het geval van een fout, wordt het bericht geschreven naar slechts één foutlogboek, het dichtst bij het niveau waar de fout is verschenen.

/ etc/nginx / nginx.conf

Als u meer dan één error_log-richtlijnen gebruikt zoals in de onderstaande configuratie (hetzelfde niveau), worden de berichten naar alle opgegeven logs geschreven.

/ etc/nginx / nginx.conf

conditionele Logging configureren in Nginx

in sommige gevallen willen we misschien dat Nginx conditionele logging van berichten uitvoert., Niet elk bericht hoeft door Nginx gelogd te worden, daarom kunnen we onbelangrijke of minder belangrijke logboekvermeldingen van onze toegangslogboeken voor bepaalde instanties negeren.

We kunnen de ngx_http_map_module module gebruiken die variabelen maakt waarvan de waarden afhankelijk zijn van waarden van andere variabelen. De parameters in een kaartblok (die alleen in de http-inhoud zouden moeten bestaan) specificeren een toewijzing tussen bron en resulterende waarden.

voor dit soort instellingen wordt een verzoek niet gelogd als de voorwaarde evalueert naar "0” of een lege tekenreeks., Dit voorbeeld sluit verzoeken met HTTP-statuscodes 2xx en 3xx uit.

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

Hier is een ander nuttig voorbeeld voor het debuggen van een webtoepassing in een ontwikkelingsfase. Dit zal alle berichten negeren en alleen debug informatie loggen.

/ etc/nginx / nginx.conf

u kunt hier meer informatie vinden, inclusief loggen naar syslog.

dat is alles voor nu! In deze handleiding hebben we uitgelegd hoe u een aangepast logboekformaat kunt configureren voor toegangs-en foutlogs in Nginx., Gebruik het feedbackformulier hieronder om vragen te stellen of uw gedachten over dit artikel te delen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *