Logging With NGINX-How To Configure It and What to Watch Out For (Magyar)

NGINX is a high-performance and reliable web server, amely képes hatalmas mennyiségű forgalmat kezelni az internet legforgalmasabb weboldalain. Ha hibaelhárítás, szüksége van egy módja annak, hogy értelme a forgalom NGINX rugalmas naplózási funkciók elfog értékes részleteket, valamint segít megérteni a viselkedését a webszerver.

az NGINX két különböző fájlt kínál az értékes webszerver adatok naplózásához., Ez a két fájl error_log és access_log. az access_log a webes ügyféligényekkel kapcsolatos információk tárolására szolgálés az error_log más váratlan vagy informatív üzeneteket tárol.

access_log

konfigurálása az access_log fájl a kérés feldolgozása után azonnal összegyűjti az összes ügyfélkérést, így nagyszerű módja annak, hogy naplózza, mely oldalakat kérnek a felhasználók a webszerverről., Kiválaszthatja, hogy az acess_log adatok hova vannak írva a következő konfigurációs fájl szintaxisával:

access_log path ] ];access_log off;

Specifyingformat lehetővé teszi, hogy egyéni formátumot használjon a naplókban olyan változók használatával, mint például a bytessent száma az ügyfélnek ($bytes_sent) vagya kérés hossza ($request_length).

általában az NGINX minden tranzakciót naplóz az access_log – ban. Az if=condition paraméter egy powerfulway-t biztosít a feltételes naplózás végrehajtásához, így csak naplózza a hozzáférési naplóüzeneteket, ha valamilyen feltétel igaz., Például, ha csak HTTP 404 állapotkódot visszaküldő kéréseket szeretne rögzíteni, akkor a következőt használhatja:

map $status $should_log {404 1;default 0;}access_log logs/access.log combined if=$should_log;

ezzel a változással minden kérés teljessikeresen (2xx), átirányítva egy másik oldalra (3xx) vagy találkozott egy servererror (5xx) nem lesz bejelentkezve naplókba/hozzáférésbe.log-only404 hibák naplózásra kerülnek.

Ha egynél több virtuális host vagymultiple http, szerver vagy hely directivesnéha hasznos lehet letiltani a naplózást a jelenlegi irányelv szintjén, és erre a célra létrehozták a speciális off értéket.,A következő konfigurációs sor megmutatja, hogyan lehet megakadályozni, hogy az NGINX bármilyen access_log targetat-ra írja az aktuális szintet:

access_log off;

a konfigurációtopciók teljesebb magyarázata érdekében nézze meg az NGINX access_log dokumentációt.

NGINX Log súlyossági szintek

NGINX támogatja a súlyossági szintek széles skálájáthogy megkönnyítse az Ön számára fontos információk naplózását. Mindegyik szint használható az error_log directivelhogy beállítsa az üzenetek naplózásának minimális szintjét., Itt vannak a supportedlevels a legalacsonyabb a legmagasabb sorrendben, valamint egy útmutató, hogyan használják őket:

  • hibakeresés üzenetek, amelyek nem hasznosak a legtöbb időt.
  • Info-információs üzenetek, amelyeket jó tudni.
  • Megjegyzés – valami normális, de jelentős történt, és meg kell jegyezni.
  • figyelmeztet-valami váratlan történt, de ez nem aggodalomra ad okot.
  • hiba-valami nem sikerült.
  • Crit-kritikus állapot történt.
  • riasztás-azonnali intézkedésre van szükség.
  • Emerg – a rendszer használhatatlan.,

az error_log

konfigurálása alapértelmezés szerint az error_log fájl az összes naplóüzenetet a hiba súlyosságának szintjén rögzíti, ami azt jelenti, hogy ” elsődlegesen a halálos vagy kritikus üzenetek megértésére használják, hogy segítseneklobleshooting. Az error_logis naplók/hiba alapértelmezett helye.napló. Az út NGINXstores hibaüzenetek rugalmas, valamint lehetővé teszi, hogy írjon messagesto egy fájlt – azt is támogatja küld error_logmessages stderr vagy a syslog démon. Ha fut NGINXopen forrás 1.5.,2 vagy újabb, akkor is küld error_log üzeneteket több helyen egy időben megadásával multiple error_log Irányelvek thesame konfigurációs szinten.

Ha azt szeretné, hogy az üzeneteit, vagy abovethe figyelmeztetni napló súlyossága, hogy az alábbi beállítást:

error_log logs/error.log warn;

Naplózás a Syslog használatával A NGINX

Mind a access_log, valamint error_log irányelvek támogató üzeneteket küld egy syslog daemon segítségével a syslog: string a konfiguráció., A következő részlet a Syslog daemon bármelyik irányelvének használatára vonatkozó szintaxist mutatja:

http {error_log syslog:server;…}

például, ha az összes error_log üzenetet figyelmeztetéssel vagy nagyobb súlyossággal kívánja irányítani a syslogdaemon-hoz, akkor használja ezt az irányelvsort:

error_log syslog:server=192.168.1.1 severity=warn;

tovább testreszabhatja a syslogconfiguration-t a az Ön környezete az nginxsyslog dokumentációban leírt syslog paraméter használatával.

Frusztrációmentes naplókezelés. (Ez egy dolog.,)

Aggregate, szervezni, és kezelni a naplók Papertrail

dolog, hogy néz ki a

a rugalmasság NGINX fakitermelés biztosít comesat a költség, és van néhány dolog, hogy néz ki, amikor írásban yourconfiguration fájlt. Már végeztünk a NGINX képes felülírni loggingconfigurations az irányelv szinten, ez a funkció rendkívül hasznos forlogging extra információ, amikor a felhasználók egyedi utak, pl., loggingextra forgalmi információk bármely felhasználó hozzáférését /privát URI., A beágyazott hozzáférési naplók használata azonban gyorsan válhatösszetett, ezért ügyeljen arra, hogy ne használja túl sokat ezt a funkciót.

access_logentries írása egy fájlra a lemezen ronthatja a szerver teljesítményét, és növelheti a felhasználói kérések késleltetését. A webszerverek számára, amelyeknek magasnak kell lenniükteljesítmény, az NGINX lehetővé teszi a naplóüzenetek írását egy ciklikus pufferbeamemória, teljesen megkerülve a lemezt. Ezeknek a naplóknak a kibontása nagyobb szerepet játszikmint egy fájl olvasása, ezért ezt csak akkor szabad használni, ha a teljesítmény kritikus a munkaterhelés szempontjából.,

ennek a funkciónak a használatához az NGINX verzióját a—with-debug opcióval kell konfigurálni. Ellenőrizheti, hogy ez a helyzet-e:

$ nginx -V 2>&1 | grep—‘—with-debug’configure arguments: --with-debug

a konfigurációs fájl belsejében engedélyezheti a naplóbejegyzések memóriába írását a következő részletekkel:

error_log memory:32m debug;...http {...}

Ez minden naplóüzenetet hibakeresési szinten ír. A naplóüzenetek memóriából történő kibontása magában foglalja a gdb használatát az NGINX folyamathoz való csatlakozáshoz, majd másolja be a következő szkriptet a promptbe:

set $log = ngx_cycle->logwhile $log->writer != ngx_log_memory_writerset $log = $log->nextendset $buf = (ngx_log_memory_buf_t *) $log->wdatadump binary memory debug_log.txt $buf->start $buf->end

majd lépjen ki a GDB-ből a Ctrl-D segítségével., A fenti szkriptírja a memória tartalmát a debug_log-hoz.txtfile ahol lehet olvasni, mint a normál.

következtetés

NGINX lehetővé teszi, hogy naplókat gyűjtsön a bothroutine hozzáférésekhez és váratlan hibákhoz külön fájlokba a későbbi elemzéshezés hibaelhárítás. Az access_logfile formátuma széles körben testreszabható, hogy részletes információkat tartalmazzonolyan követelmények, mint az Ügyfélnek küldött bájtok száma vagy a kérés hossza,valamint az error_log irányelv lehetővé tesziön, hogy ellenőrizze az üzenetek naplózásához szükséges minimális súlyossági szintet.,Mind az access_log, mind az error_log Irányelvek továbbíthatják a logentry-ket egy syslog démonnak, ami rendkívül hasznos lehet A több webszerverrel dolgozó fejlesztők számára.

és ha ezek a funkciók nem elégségesek, akkor is írhat error_logentries egy memória puffer, hogy ne írjon a lemezre, és csökkenti a teljesítményhatást elfoglalt szerverek.

Leave a Comment