Så här konfigurerar du anpassade åtkomst-och Felloggformat i Nginx

Så här konfigurerar du anpassade åtkomst-och Felloggformat i Nginx

nginx HTTP-server har en fenomenal loggningsfunktion som är mycket anpassningsbar. I den här artikeln kommer vi att förklara hur du konfigurerar egna format för åtkomst-och felloggar för Nginx i Linux.

syftet med denna guide är att hjälpa dig att förstå hur loggar genereras, för att konfigurera anpassade loggformat för Felsökning, Felsökning eller analys av vad som utvecklas inom din webbserver samt webbapplikationer (t.ex. spåringsförfrågningar).,

Läs också: 4 Bra Open Source-Loggövervaknings-och hanteringsverktyg för Linux

den här artikeln är gjord av tre sektioner som kommer att upplysa dig om att konfigurera åtkomst / felloggar och hur du aktiverar villkorlig loggning i Nginx.

konfigurera åtkomstloggar i nginx

under Nginx lagras alla klientförfrågningar till servern i åtkomstloggen i ett angivet format med hjälp av ngx_http_log_module-modulen.

standardloggfilen är log / access.,log (vanligtvis / var / log / nginx / access_log på Linux-system) och standardformatet för loggning är normalt det kombinerade eller huvudformatet (detta kan variera från en distro till en annan).

access_log-direktivet (gäller i http, server, plats, om på plats och Gräns utom sammanhang) används för att ställa in loggfilen och log_format-direktivet (gäller endast under http-sammanhang) används för att ställa in loggformatet. Loggformatet beskrivs av vanliga variabler och variabler som genereras endast vid den tidpunkt då en logg skrivs.,

syntaxen för att konfigurera ett loggformat är:

log_format format_name 'set_of_variables_to_define_format';

och syntaxen för att konfigurera åtkomstloggen är:

Följande är ett utdrag ur standardkonfigurationsfilen nginx/etc/nginx / nginx.conf på CentOS 7.

/etc/nginx/nginx.conf

det här loggformatet ger följande loggpost.

Följande är ett annat användbart loggningsformat som vi använder för att spåra förfrågningar till våra webbapplikationer med hjälp av några av standardvariablerna, det viktigast har begäran ID och loggar klient plats detaljer (land, landskod, region och stad).,

/etc/nginx/nginx.conf

Du kan använda den så här:

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

detta kommer att producera en loggpost som visas så här.

Du kan ange flera loggar med access_log-direktiven på samma nivå, här använder vi mer än en loggfil i http-sammanhanget.

/etc/nginx/nginx.,conf

Följande är mer avancerade loggning konfigurationer exempel, som är användbara för loggformat som innehåller komprimeringsrelaterade variabler och för att skapa komprimerade loggfiler:

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

konfigurera felloggar i Nginx

om Nginx upplever några buggar, registrerar den information om dem i felloggen. Dessa problem faller under olika allvarlighetsnivåer: debug, info, meddelande, varna, fel (Detta är standardnivån och fungerar globalt), crit, alert eller emerg.

standardloggfilen är log / error.,log, men det ligger normalt i/var/ log / nginx / på Linux-distributioner. Error_log-direktivet används för att ange loggfilen, och den kan användas i huvud -, http -, mail -, stream -, server -, platskontexten (i den ordningen).

Du bör också notera att:

  • konfigurationer i huvudkontexten alltid ärvs av lägre nivåer i ordningen ovan.
  • och konfigurationer i de lägre nivåerna åsidosätter konfigurationerna som ärvs från de högre nivåerna.,

Du kan konfigurera felloggning med följande syntax:

error_log /path/to/log_file log_level;

till exempel:

error_log /var/log/nginx/error_log warn; 

detta kommer att instruera Nginx att logga alla meddelanden av typen warn och strängare log nivå crit, alert och emerg meddelanden.

i nästa exempel loggas meddelanden om crit, alert och emerg-nivåer.

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

Tänk på konfigurationen nedan, Här har vi definierat felloggning på olika nivåer (i http-och serverkontexten)., Vid ett fel skrivs meddelandet till endast en fellogg, den som ligger närmast den nivå där felet har uppstått.

/etc/nginx/nginx.conf

om du använder fler än ett error_log-direktiv som i konfigurationen nedan (samma nivå) skrivs meddelandena till alla angivna loggar.

/etc/nginx/nginx.conf

konfigurera villkorlig loggning i Nginx

i vissa fall kanske vi vill att Nginx ska utföra villkorlig loggning av meddelanden., Inte varje meddelande måste loggas av Nginx, därför kan vi ignorera obetydliga eller mindre viktiga loggposter från våra åtkomstloggar för vissa fall.

Vi kan använda ngx_http_map_module-modulen som skapar variabler vars värden beror på värden för andra variabler. Parametrarna i ett kartblock (som endast ska finnas i http-innehållet) anger en mappning mellan källvärden och resulterande värden.

för denna typ av inställning loggas inte en begäran om villkoret utvärderar till"0” eller en tom sträng., Detta exempel utesluter förfrågningar med HTTP-statuskoder 2xx och 3xx.

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

Här är ett annat användbart exempel för att felsöka ett webbprogram i en utvecklingsfas. Detta kommer att ignorera alla meddelanden och bara logga felsökningsinformation.

/etc/nginx/nginx.conf

Du kan ta reda på mer information, inklusive loggning till syslog här.

det är allt för nu! I den här guiden förklarade vi hur du konfigurerar anpassat loggningsformat för åtkomst-och felloggar i Nginx., Använd feedbackformuläret nedan för att ställa frågor eller dela tankar om den här artikeln.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *