nginx HTTP-palvelimella on ilmiömäinen kirjauslaitos, joka on erittäin muokattavissa. Tässä artikkelissa, selitämme, miten voit määrittää oman formaatteja access ja virhe lokit nginx Linux.
tämän oppaan tavoitteena on auttaa sinua ymmärtämään, miten lokit luodaan, jotta voit määrittää mukautetun log formaatteja varten testaus, vianmääritys tai analyysi siitä, mitä paljastuu sisällä web server sekä web-sovellusten (kuten tracing pyyntöjä).,
Lue Myös: 4 Hyvä Avoimen Lähdekoodin Log Seuranta ja Hallinta Työkaluja Linux –
Tämä artikkeli on tehty kolmeen osaan, jotka kertoa teille määrittämisestä pääsy/virhe lokit ja miten, jotta ehdollinen kirjautumalla Nginx.
Konfigurointi-Yhteys Lokit Nginx
Alle Nginx, kaikki asiakkaan pyynnöt palvelimelle on recored access log tietyssä muodossa käyttäen ngx_http_log_module moduuli.
oletuksena log-tiedosto on log/pääsy.,log (yleensä /var/log/nginx/access_log Linux-järjestelmissä) ja default-muodossa kirjautumalla on yleensä yhdistetty tai tärkein muoto (tämä voi vaihdella yksi distro toiseen).
access_log direktiivi (voimaan http-palvelin, sijainti, jos sijainti ja raja-paitsi yhteydessä) käytetään asettamaan log-tiedosto ja log_format direktiivin (koskee alle http-yhteydessä vain) käytetään asettamaan log-muodossa. Lokiformaattia kuvaavat yhteiset muuttujat ja muuttujat, jotka syntyvät vasta silloin, kun loki kirjoitetaan.,
syntaksin määrittämiseen log format on:
log_format format_name 'set_of_variables_to_define_format';
ja syntaksi määrittäminen pääsy loki on:
seuraavassa on ote default Nginx kokoonpano tiedosto /etc/nginx/nginx.conf Centosin 7.
tämä log-muoto antaa seuraavan lokimerkinnän.
seuraavassa on toinen hyödyllinen hakkuut muoto, jota käytämme tracing pyyntöjä web-sovelluksia käyttäen joitakin default muuttujia, se mikä tärkeintä on pyynnön TUNNUS ja lokit asiakkaan sijainnin tiedot (maa, maatunnus, alue ja kaupunki).,
Voit käyttää sitä näin:
access_log /var/log/nginx/access.log custom;
Tämä tuottaa log-merkintä, joka näyttää tältä.
voit määrittää useita lokeja access_log-direktiivien avulla samalla tasolla, täällä käytämme useampaa kuin yhtä lokitiedostoa http-kontekstissa.
seuraavat ovat kehittyneempiä hakkuut kokoonpanoissa esimerkkejä, jotka ovat hyödyllisiä log tiedostomuotoja, jotka sisältävät pakkaus-liittyvät muuttujat ja luoda pakattu lokitiedostot:
access_log /var/log/nginx/custom_log custom buffer 32k;access_log /path/to/log.gz compression gzip flush=5m;
Konfigurointi Virhe Lokit Nginx
jos Nginx kokemuksia mitään virheitä, se tallentaa tiedot, jotka koskevat niitä virheloki. Nämä kysymykset kuuluvat eri vakavuusasteella: debug, info, ilmoitus, varoittaa, virhe (tämä on oletuksena tasolla ja toimii maailmanlaajuisesti), crit, hälytys, tai emerg.
oletuslokitiedosto on loki / virhe.,loki, mutta se sijaitsee yleensä Linux-jakeluissa /var/log/nginx/. Error_log-direktiiviä käytetään lokitiedoston määrittämiseen, ja sitä voidaan käyttää pää -, http -, mail -, stream -, server -, location-kontekstissa (tässä järjestyksessä).
kannattaa myös huomioida, että:
- kokoonpanot pääasiallisessa kontekstissa periytyvät aina alemmilla tasoilla yllä olevassa järjestyksessä.
- ja alempien tasojen kokoonpanot ohittavat korkeammilta tasoilta periytyvät kokoonpanot.,
Voit määrittää virhe hakkuut käyttämällä seuraavaa syntaksia:
error_log /path/to/log_file log_level;
esimerkiksi:
error_log /var/log/nginx/error_log warn;
Tämä neuvoo Nginx kirjaudu kaikki viestit tyypin varoittaa ja enemmän vakavia log tasolla crit, hälytys, ja emerg-viestejä.
seuraavassa esimerkissä crit -, alert-ja emerg-tasojen viestit kirjataan.
error_log /var/www/example1.com/log/error_log crit;
Harkitse kokoonpano alla, täällä, meillä on määritelty virhe hakkuut eri tasoilla (http ja palvelimen yhteydessä)., Virheen sattuessa viesti kirjoitetaan vain yhteen virhelokiin, joka on lähimpänä tasoa, jolla virhe on ilmestynyt.
Jos käytät useampaa kuin yhtä error_log-direktiiviä kuten alla olevassa kokoonpanossa (sama taso), viestit kirjoitetaan kaikkiin määritettyihin lokeihin.
Määrittäminen Ehdollisen Kirjautumalla Nginx
joissakin tapauksissa, haluamme ehkä Nginx tehdä ehdollinen hakkuut viestejä., Nginx ei tarvitse kirjata jokaista viestiä, joten voimme jättää huomiotta merkityksettömät tai vähemmän tärkeät lokimerkinnät käyttöoikeuslokeistamme tietyissä tapauksissa.
Voimme käyttää ngx_http_map_module-moduulia, joka luo muuttujia, joiden arvot riippuvat muiden muuttujien arvoista. Karttalohkon sisällä olevat parametrit (joiden pitäisi olla vain http-sisällössä) määrittävät lähteen ja tuloksena olevien arvojen välisen kartoituksen.
tällaista asetusta, pyyntö ei ole kirjautunut, jos ehto arvo "0”
tai tyhjä merkkijono., Tämä esimerkki ei sisällä pyyntöjä HTTP-tilakoodit 2xx ja 3xx.
http{map $status $condition {~^ 0; default 1;}server{access_log /path/to/access.log custom if=$condition;}}
Tässä on toinen hyödyllinen esimerkki testaus web-sovelluksen kehitysvaiheessa. Tämä sivuuttaa kaikki viestit ja vain lokin virheenjäljitystiedot.
lisätietoa, mukaan lukien kirjautuminen syslogiin täältä.
That ’ s all for now! Tässä oppaassa selitetään, miten voit määrittää custom logging muodossa access-ja error-lokit Nginx., Kysy alla olevalla palautelomakkeella kysymyksiä tai jaa ajatuksia tästä artikkelista.