lokitiedostot

Access Log

palvelimen pääsy loki kirjaa kaikki pyynnöt käsitellään palvelimen. Sijainti ja sisältö pääsy loki ohjataan CustomLog direktiivi. LogFormat – direktiivillä voidaan yksinkertaistaa lokien sisällön valintaa. Tässä osassa kuvataan, miten palvelin voidaan määrittää tallentamaan tietoja käyttöoikeuslokiin.

tietojen tallentaminen liityntälokiin on tietysti vasta lokinhallinnan alku., Seuraava askel on analysoida nämä tiedot tuottaa hyödyllisiä tilastoja. Lokianalyysi ei yleensä kuulu tämän asiakirjan soveltamisalaan, eikä se oikeastaan kuulu itse WWW-palvelimen tehtäviin. Lisätietoja tästä aiheesta ja lokianalyysin suorittavista sovelluksista on avoimessa hakemistossa.

Eri versioita Apache httpd on käyttää muiden moduulien ja direktiivien access control-puunkorjuu, mukaan lukien mod_log_referer, mod_log_agent, ja TransferLog direktiivi., CustomLog – direktiivi on nyt osa kaikkien vanhempien direktiivien toimivuutta.

käyttöoikeuslokin muoto on erittäin konfiguroitavissa. Formaatti on määritelty käyttämällä formaattijonoa, joka näyttää paljon C-tyyliseltä printf(1) – formaattijonolta. Seuraavassa osassa esitetään joitakin esimerkkejä. Täydellinen luettelo mahdollisista sisältö format string, katso mod_log_config muodossa jouset.

yleinen Lokiformaatti

kulkulokille tyypillinen kokoonpano saattaa näyttää seuraavanlaiselta.,

LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common

Tämä määrittelee lempinimi common ja liittää sen tiettyyn log format-merkkijono. Muotoile merkkijono koostuu prosenttia direktiivejä, joista jokainen kertoa palvelimelle kirjautua erityisesti pala tietoa. Kirjaimelliset merkit voidaan myös sijoittaa formaattijonoon ja ne kopioidaan suoraan log-ulostuloon. Lainaus merkki (") on karannut asettamalla kenoviiva ennen sitä, jotta se tulkitaan loppuun muotomerkkijonoa., Muotoile merkkijono voi sisältää myös erityinen ohjaus merkkiä ”\n” new-line ja ”\t” tab.

CustomLog direktiivillä perustetaan uusi lokitiedosto käyttäen määritelty lempinimi. Tiedostonimi pääsy loki on suhteessa ServerRoot ellei se alkaa kauttaviivalla.

yllä oleva kokoonpano kirjoittaa lokimerkinnät muodossa, joka tunnetaan nimellä Common Log Format (CLF). Tämän vakiomuodon voivat tuottaa monet eri web-palvelimet ja lukea monet log-analyysiohjelmat., Log-merkinnät tuotettu CLF näyttää tältä:

127.0.0.1 - frank "GET /apache_pb.gif HTTP/1.0" 200 2326

Jokainen osa tämän lokin merkintä on kuvattu alla.

127.0.0.1(%h) Tämä on IP-osoite client (remote host), joka teki pyynnön palvelimelle. Jos

HostnameLookupson asetettuOn, niin palvelin yrittää määrittää isäntänimi ja kirjaudu sen sijasta IP-osoite. Tätä määritystä ei kuitenkaan suositella, koska se voi hidastaa palvelinta merkittävästi., Sen sijaan, se on parasta käyttää kirjaudu post-prosessori, kutenlogresolvemäärittää isäntänimiä. Tässä ilmoitettu IP-osoite ei välttämättä ole sen koneen osoite, jossa käyttäjä istuu. Jos välityspalvelin on olemassa käyttäjän ja palvelimen välillä, tämä osoite on välityspalvelimen osoite eikä alkuperäkone.-(%l), Että ”tavuviiva” lähtö osoittaa, että pyydetty tieto ei ole saatavilla., Tässä tapauksessa tietoja ei ole käytettävissä on RFC 1413 identiteetin asiakkaan määräytyyidentdclients-kone. Nämä tiedot ovat erittäin epäluotettavia, eikä niitä pitäisi juuri koskaan käyttää paitsi tiukasti valvotuissa sisäisissä verkoissa. Apache httpd ei edes yritä selvittää nämä tiedot, jolleiIdentityCheckon asetettuOn.frank(%u) Tämä on käyttäjätunnus pyytävän henkilön asiakirjan määräytyy HTTP-todennusta varten., Sama arvo annetaan tyypillisesti CGI-skripteilleREMOTE_USERympäristömuuttujassa. Jos pyynnön tilakoodi (KS. alla) on 401, tähän arvoon ei pidä luottaa, koska käyttäjää ei ole vielä varmennettu. Jos asiakirja ei ole suojattu salasanalla, tämä osa on ”-”, aivan kuten edellinen.(%t), kun pyyntö on vastaanotettu., Muoto on:

on mahdollista saada ajan näkyviin toisessa muodossa määrittämällä %{format}t log format-merkkijono, jossa format joko kuten strftime(3) C standard library, tai yksi tuetuista erityistä kuponkia. Lisätietoja mod_log_config muodossa jouset.

"GET /apache_pb.gif HTTP/1.0"(\"%r\") pyyntö linjan asiakas on antanut lainausmerkkeihin. Pyyntölinja sisältää paljon hyödyllistä tietoa., Ensinnäkin asiakkaan käyttämä menetelmä onGET. Toinen asiakas pyysi resource/apache_pb.gif, ja kolmanneksi, asiakas käyttää pöytäkirjaHTTP/1.0. Pyyntölinjan yksi tai useampi osa on myös mahdollista kirjata itsenäisesti. Esimerkiksi format string ”%m %U%q %H” kirjaudu menetelmä, polku, kysely-string, ja pöytäkirja, jolloin täsmälleen sama tuotos kuin ”%r”.200(%>s) Tämä on tila koodi, että palvelin lähettää takaisin asiakkaalle., Tämä tieto on erittäin arvokas, koska se paljastaa, onko pyyntö johti onnistunut hoitovaste (koodit alkaen 2), uudelleenohjaus (koodit alkaen 3), virhe aiheutti asiakkaan (koodit alussa 4), tai on virhe server (koodit alussa vuonna 5). Täydellinen luettelo mahdollisista tilakoodeista löytyy HTTP-spesifikaatiosta (rfc2616 Jakso 10).

2326(%b) viimeinen osa ilmaisee objektin kokoa palautetaan asiakkaalle, ei mukaan lukien vastaus otsikot., Jos sisältöä ei palautettu asiakkaalle, arvo on ”-”. Jos haluat kirjautua”0”ilman sisältöä, käytä sen sijaan.

yhdistettyä Lokiformaattia

toista yleisesti käytettyä formaattijonoa kutsutaan yhdistetyksi Lokiformaatiksi. Sitä voidaan käyttää seuraavasti.

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined

Tämä muoto on täsmälleen sama kuin Yhteinen Loki Muodossa, johon on lisätty kaksi enemmän kenttiä. Jokainen lisää kenttiä käyttää prosentti-direktiivi %{header}i, jossa otsikko voi olla mikä tahansa HTTP-pyynnön ylätunnisteen., Pääsy loki alla tämä muoto näyttää:

lisää kenttiä ovat:

"http://www.example.com/start.html"(\"%{Referer}i\"), Että ”Referer” (sic) HTTP-pyynnön ylätunnisteen. Tämä antaa sivuston, että asiakas raportoi on viitattu. (Tämä on sivu, joka linkittää tai sisältää/apache_pb.gif)."Mozilla/4.08 (Win98; I ;Nav)"(\"%{User-agent}i\") User-Agent-HTTP-pyynnön ylätunnisteen. Tämä on tunnistetieto, jonka asiakasselain raportoi itsestään.,

Multiple Access Lokit

Multiple access lokit voidaan luoda yksinkertaisesti määrittämällä useita CustomLog direktiivien asetustiedostoon. Esimerkiksi seuraavissa direktiiveissä luodaan kolme liityntälokia. Ensimmäinen sisältää CLF: n perustiedot, kun taas toinen ja kolmas sisältävät refer-ja selaininformaatiota. Kaksi viimeistä CustomLog viivat osoittavat, miten matkivat vaikutukset ReferLog ja AgentLog direktiivejä.,

Tämä esimerkki osoittaa myös, ettei nimimerkkiä tarvitse määritellä LogFormat – direktiivillä. Sen sijaan lokiformaatti voidaan määritellä suoraan CustomLog – direktiivissä.

Ehdollinen Lokit

On aikoja, jolloin se on kätevä sulkea tiettyjä merkintöjä lokit perustuu ominaisuuksiin asiakkaan pyynnöstä. Tämä onnistuu helposti ympäristömuuttujien avulla. Ensinnäkin on asetettava ympäristömuuttuja, joka osoittaa, että pyyntö täyttää tietyt ehdot., Tämä tapahtuu yleensä SetEnvIf. Sitten env= lauseke CustomLog direktiivi on tapana sisällyttää tai jättää pois pyyntöjä, jossa ympäristömuuttuja on asetettu. Joitakin esimerkkejä:

toisena esimerkkinä harkita hakkuut pyyntöjä englanti-kaiuttimet yhteen lokitiedostoon, ja ei-englanti kaiuttimet eri lokitiedostoon.

SetEnvIf Accept-Language "en" englishCustomLog logs/english_log common env=englishCustomLog logs/non_english_log common env=!english

välimuistin skenaario yksi haluaisi tietää tehokkuutta.välimuisti., Hyvin yksinkertainen tapa löytää tämä ulos olisi:

SetEnv CACHE_MISS 1LogFormat "%h %l %u %t "%r " %>s %b %{CACHE_MISS}e" common-cacheCustomLog logs/access_log common-cache

mod_cache ajaa ennen mod_env ja kun onnistuu, tulee toimittaa sisältöä ilman sitä. Tällöin välimuistin osuma kirjaa -, kun välimuistin kirjautuu 1.,

lisäksi env= – syntaksilla, LogFormat tukee hakkuut arvot ehtona HTTP-vastaus-koodi:

LogFormat "%400,501{User-agent}i" browserlogLogFormat "%!200,304,302{Referer}i" refererlog

ensimmäisellä esimerkiksi User-agent kirjataan, jos HTTP-tilakoodi on 400 tai 501. Muissa tapauksissa kirjaimellinen ” – ”kirjataan sen sijaan. Samoin toinen esimerkki: Referer kirjataan, jos HTTP-tilakoodi ei ole 200, 204, tai 302. (Huomaa”!”ennen tilakoodeja.,

Vaikka olemme juuri osoittaneet, että ehdollinen hakkuut on erittäin tehokas ja joustava, se ei ole ainoa tapa hallita sisältöä lokit. Lokitiedostot ovat hyödyllisempiä, kun ne sisältävät täydellisen tallennuksen palvelimen toiminnasta. Lokitiedostojen jälkikäsittely on usein helpompaa poistaa pyyntöjä, joita et halua ottaa huomioon.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *