Nginx HTTP szerver egy fenomenális naplózási lehetőség, amely nagymértékben testreszabható. Ebben a cikkben elmagyarázzuk, hogyan konfigurálhatjuk a saját formátumokat a Linux Nginx hozzáférési és hibanaplóihoz.
A céllal, hogy ez az útmutató célja, hogy segítsen megérteni, hogyan naplók keletkezik, olyan, mint beállítani az egyéni napló formátumok céljából hibakeresés, problémamegoldás, vagy elemzését, mi bontakozik belül a web-szerver, valamint a webes alkalmazások (például a nyomkövetés kérések).,
olvassa el: 4 Jó nyílt forráskódú Naplófigyelő és kezelő eszközök Linux
Ez a cikk három részből áll, amelyek felvilágosítják a hozzáférési / hiba naplók konfigurálásáról, valamint a feltételes naplózás engedélyezéséről az Nginx-ben.
hozzáférési naplók konfigurálása Nginx
alatt Nginx, a kiszolgálóra irányuló összes ügyfélkérés az ngx_http_log_module modul segítségével meghatározott formátumban kerül rögzítésre a hozzáférési naplóban.
Az alapértelmezett naplófájl a log/access.,log (általában /var/log/nginx/access_log Linux rendszereken) és a naplózás alapértelmezett formátuma általában a kombinált vagy fő formátum (ez eltérhet az egyik disztribúciótól a másikig).
A access_log irányelv (alkalmazandó a http-szerver helyét, ha a hely, majd a határ, kivéve összefüggésben) segítségével állítsa be a log fájlt, majd a log_format irányelv (hatályos http összefüggésben csak) segítségével állítsa be a napló formátum. A naplóformátumot közös változók írják le, valamint olyan változók, amelyek csak a napló írásakor keletkeznek.,
a naplóformátum konfigurálásának szintaxisa:
log_format format_name 'set_of_variables_to_define_format';
és a hozzáférési napló konfigurálásának szintaxisa:
a következő részlet Az alapértelmezett Nginx konfigurációs fájlból / etc / nginx / nginx.conf a CentOS 7.
Ez a naplóformátum a következő naplóbejegyzést adja meg.
a következő egy másik hasznos naplózási formátum, amelyet webalkalmazásainkra irányuló kérések nyomon követésére használunk az alapértelmezett változók némelyikének felhasználásával, a legfontosabb a kérésazonosító, valamint a kliens helymeghatározásának adatai (ország, országkód, régió és város).,
használhatja így:
access_log /var/log/nginx/access.log custom;
Ez egy naplóbejegyzést eredményez, amely így jelenik meg.
több naplót is megadhat az access_log irányelvek segítségével ugyanazon a szinten, itt több naplófájlt használunk a http kontextusban.
A következő fejlettebb fakitermelés konfigurációk példák, amelyek hasznos napló formátumokat tartalmazó tömörítés kapcsolatos változók létrehozása, tömörített log fájlok:
access_log /var/log/nginx/custom_log custom buffer 32k;access_log /path/to/log.gz compression gzip flush=5m;
Konfigurálása hibanapló a Nginx
ha a Nginx tapasztalatok, esetleges hibák, rögzíti vonatkozó információk őket a hiba napló. Ezek a problémák különböző súlyossági szintek alá tartoznak: debug, info, notice, warn, error (ez az Alapértelmezett szint, globálisan működik), crit, alert, vagy emerg.
Az alapértelmezett naplófájl log / error.,log, de általában található/var/log/ nginx / Linux disztribúciók. Az error_log irányelv a naplófájl megadására szolgál, amelyet a fő, http, mail, stream, szerver, helykörnyezetben lehet használni (ebben a sorrendben).
azt is meg kell jegyezni, hogy:
- a fő kontextusban lévő konfigurációkat mindig a fenti sorrendben alacsonyabb szintek öröklik.
- és az alsó szintek konfigurációi felülírják a magasabb szintektől örökölt konfigurációkat.,
a hiba naplózását a következő szintaxis segítségével állíthatja be:
error_log /path/to/log_file log_level;
például:
error_log /var/log/nginx/error_log warn;
Ez arra utasítja Nginx-et, hogy jelentkezzen be minden típusú és súlyosabb naplószint crit, alert és emerg üzeneteket.
a következő példában a crit, alert és emerg szintek üzenetei lesznek naplózva.
error_log /var/www/example1.com/log/error_log crit;
fontolja meg az alábbi konfigurációt, itt meghatároztuk a hiba naplózását különböző szinteken (http és szerver kontextusban)., Hiba esetén az üzenetet csak egy hibanaplóra írják, amely a legközelebb áll ahhoz a szinthez, ahol a hiba megjelent.
Ha egynél több error_log irányelvet használ, mint az alábbi konfigurációban (ugyanazon a szinten), az üzenetek minden megadott naplóba íródnak.
feltételes naplózás konfigurálása Nginx
egyes esetekben azt szeretnénk, ha az Nginx feltételes naplózást hajtana végre az üzenetekben., Nem minden üzenetet kell bejelentkeznie a Nginx-nek, ezért figyelmen kívül hagyhatjuk az egyes példányok hozzáférési naplóiból származó jelentéktelen vagy kevésbé fontos naplóbejegyzéseket.
használhatjuk az ngx_http_map_module modult, amely olyan változókat hoz létre, amelyek értékei más változók értékeitől függenek. A térképblokkon belüli paraméterek (amelyeknek csak a http-tartalomban kell létezniük) megadják a forrás és a kapott értékek közötti leképezést.
az ilyen típusú beállítás esetén a kérés nem lesz naplózva, ha a feltétel értéke "0”
vagy egy üres karakterlánc., Ez a példa kizárja a 2xx és 3xx http állapotkódokkal rendelkező kéréseket.
http{map $status $condition {~^ 0; default 1;}server{access_log /path/to/access.log custom if=$condition;}}
itt van egy másik hasznos példa egy webes alkalmazás hibakeresésére egy fejlesztési szakaszban. Ez figyelmen kívül hagyja az összes üzenetet, csak naplózási hibakeresési információkat.
további információkat találhat, beleértve a naplózást a syslogba itt.
Ez mind most! Ebben az útmutatóban elmagyaráztuk, hogyan konfigurálhatjuk az egyéni naplózási formátumot az Nginx hozzáférési és hibanaplóihoz., Az alábbi visszajelzési űrlap segítségével kérdéseket tehet fel, vagy megoszthatja gondolatait erről a cikkről.