Ngin. HTTP server har en fænomenal logging facilitet, som er meget tilpasselig. I denne artikel vil vi forklare, hvordan du konfigurerer dine egne formater til adgangs-og fejllogfiler for Ngin.i Linu..
formålet med denne vejledning er at hjælpe dig med at forstå, hvordan logfiler genereres, så du konfigurerer brugerdefinerede logformater med henblik på Fejlfinding, Fejlfinding eller analyse af, hvad der udfolder sig i din webebserver såvel som webebapplikationer (såsom sporingsanmodninger).,
Læs Også: 4 Gode Open Source-Log Overvågning og Management Værktøjer til Linux
Denne artikel er lavet af tre sektioner, der vil oplyse dig om, hvordan du konfigurerer adgang/fejl logfiler, og hvordan du aktiverer betinget logge på Nginx.
konfiguration af adgangslogfiler i Ngin.
under Ngin. gendannes alle klientanmodninger til serveren i adgangsloggen i et specificeret format ved hjælp af NG ._http_log_module-modulet.
standardlogfilen er log / access.,log (normalt /var/log/Ngin./access_log på Linu. – systemer) og standardformatet til logning er normalt det kombinerede eller hovedformat (dette kan variere fra en distro til en anden).
access_log-direktivet (gælder i HTTP, server, placering, hvis I placering og grænse undtagen kontekst) bruges til at indstille logfilen, og log_format-direktivet (gælder kun under http-konteksten) bruges til at indstille logformatet. Logformatet beskrives af fælles variabler og variabler, der kun genereres på det tidspunkt, hvor en log er skrevet.,
syntaksen til konfiguration af et logformat er:
log_format format_name 'set_of_variables_to_define_format';
og syntaksen til konfiguration af adgangsloggen er:
Følgende er et uddrag fra standard Ngin. – konfigurationsfilen/etc/Ngin. / Ngin..conf på CentOS 7.
dette logformat giver følgende logindtastning.
Følgende er et andet nyttigt logningsformat, som vi bruger til at spore anmodninger til vores webebapplikationer ved hjælp af nogle af standardvariablerne, det vigtigst har forespørgsels-ID og logger klientplaceringsoplysninger (land, landekode, region og by).,
Du kan bruge det på denne måde:
access_log /var/log/nginx/access.log custom;
Dette vil producere en logpost, der vises som denne.
Du kan specificere flere logfiler ved hjælp af access_log-direktiverne på samme niveau, her bruger vi mere end en logfil i HTTP-konteksten.
følgende er mere avanceret logning konfigurationer eksempler, som er nyttige for at logge formater, der indeholder kompression-relaterede variable og for at skabe komprimeret log-filer:
access_log /var/log/nginx/custom_log custom buffer 32k;access_log /path/to/log.gz compression gzip flush=5m;
Konfiguration af Fejl Logfiler i Nginx
I tilfælde af at Nginx oplevelser på eventuelle fejl, det registrerer oplysninger om dem i fejlloggen. Disse problemer falder ind under forskellige sværhedsgrader: debug, info, notice, warnarn, error (dette er standardniveauet og fungerer globalt), crit, alert eller emerg.
standard logfilen er log / fejl.,log, men det er normalt placeret i/var/ log / Ngin. / på Linu. – distributioner. Error_log-direktivet bruges til at angive logfilen, og den kan bruges i main, http, mail, stream, server, location Conte .t (i den rækkefølge).
Du skal også bemærke, at:
- konfigurationer i hovedkonteksten altid arves af lavere niveauer i ovenstående rækkefølge.
- og konfigurationer i de lavere niveauer tilsidesætter de konfigurationer, der er arvet fra de højere niveauer.,
Du kan konfigurere fejl logning ved hjælp af følgende syntaks:
error_log /path/to/log_file log_level;
For eksempel:
error_log /var/log/nginx/error_log warn;
Dette vil instruere Ngin.til at logge alle meddelelser af typen advare og mere alvorlige log niveau crit, alert, og emerg meddelelser.
i det næste eksempel logges meddelelser om crit -, alert-og emerg-niveauer.
error_log /var/www/example1.com/log/error_log crit;
overvej konfigurationen nedenfor, her har vi defineret fejllogning på forskellige niveauer (i HTTP-og serverkonteksten)., I tilfælde af en fejl skrives meddelelsen kun til en fejllog, den, der er tættest på det niveau, hvor fejlen er vist.
Hvis du bruger mere end et error_log-direktiv som i konfigurationen nedenfor (samme niveau), skrives meddelelserne til alle angivne logfiler.
konfiguration af betinget Logning i Ngin.
i nogle tilfælde ønsker vi måske, at Ngin. skal udføre betinget logning af meddelelser., Ikke alle meddelelser skal logges af Ngin., derfor kan vi ignorere ubetydelige eller mindre vigtige logposter fra vores adgangslogfiler for bestemte tilfælde.
Vi kan bruge ng ._http_map_module-modulet, der opretter variabler, hvis værdier afhænger af værdier for andre variabler. Parametrene inde i en kortblok (som kun skal findes i HTTP-indholdet) angiver en kortlægning mellem kilde og resulterende værdier.
for denne type indstilling, vil en anmodning ikke blive logget, hvis betingelsen evaluerer til "0”
eller en tom streng., Dette eksempel udelukker anmodninger med HTTP-statuskoder 2 and and og 3…
http{map $status $condition {~^ 0; default 1;}server{access_log /path/to/access.log custom if=$condition;}}
Her er et andet nyttigt eksempel til fejlfinding af en webebapplikation i en udviklingsfase. Dette vil ignorere alle meddelelser og kun logge fejlfindingsoplysninger.
Du kan finde ud af mere information, herunder logning til syslog her.
det er alt for nu! I denne vejledning forklarede vi, hvordan du konfigurerer brugerdefineret loggingsformat til adgangs-og fejllogfiler i Ngin.., Brug feedbackformularen nedenfor til at stille spørgsmål eller dele tanker om denne artikel.