Apache Hakkuut Perusteet

Apache log kirjaa tapahtumat, jotka käsiteltiin Apache web-palvelin, mukaan lukien pyynnöt muilta tietokoneissa, vastaukset lähetetään Apache, ja toimet sisäinen Apache-palvelin. Tässä osassa opas selittää perusteet Apache Puunkorjuun mukaan lukien tyypit lokeja syntyy Apache, jossa ne tallennetaan, ja miten tulkita niitä. Käsittelemme myös edistyneitä aiheita, kuten mukautettujen lokiformaattien asettamista ja moduulien määrittämistä rikkaampien tietojen saamiseksi.,

Apache-Lokityypit

Apache tuottaa kahdenlaisia lokeja: access-lokit ja virhelokit.

Käyttöoikeusloki

käyttöoikeusloki sisältää tietoa WWW-palvelimelle tulevista pyynnöistä. Nämä tiedot voivat sisältää, mitä sivuja ihmiset katselevat, pyyntöjen onnistumisen tilan ja sen, kuinka kauan palvelin kesti vastata. Tässä on esimerkki tyypillisestä pääsy loki merkintä:

Error Log

virheloki sisältää tiedot virheitä web-palvelin kohtasi käsiteltäessä pyyntöjä, kuten puuttuvat tiedostot., Se sisältää myös diagnostisia tietoja itse palvelimesta. Tässä on esimerkki error log:

 File does not exist: /var/www/favicon.ico

Kirjaudu Paikkoja

oletuksena, Apache tallentaa access-ja error-lokit erillisinä tiedostoina palvelimelle. Tarkka sijainti riippuu käyttöjärjestelmästäsi., Voit löytää paikka teidän KÄYTTÖJÄRJESTELMÄ klikkaamalla seuraavista linkeistä:

Debian/Ubuntu/Linux Mint
Redhat/Fedora/CentOS Kokoonpano
OpenSUSE

Konfigurointi Apache Lokit

Apache on erittäin muokattava logging framework, jonka avulla voit säätää hakkuut käyttäytymistä yleisesti tai kunkin virtuaalinen isäntä. On olemassa useita direktiivejä voit muuttaa puunkorjuu käyttäytymistä. Joitakin yleisempiä direktiivejä ovat lokin tasoa ja lokin muotoa koskevat direktiivit, joita selvitämme yksityiskohtaisemmin.,

Kirjautuminen Taso-Direktiivi

LogLevel direktiivi määrittää vähimmäistason vakavuusasteen tapahtumia, jotka kirjataan tiettyyn kohteeseen. Vakavuus taso edustaa, kuinka tärkeä tapahtuma on ja voi vaihdella ”Emerging” ja ”Trace8”, jossa ”Emerging”, jotka edustavat tapahtumia, jotka voivat johtaa epävakauteen, ja ”Trace8” eli jälki-tason viestejä. Esimerkiksi LogLevel crit mahdollistaa lokit ”Crit”, ”Alert” ja ”Emerging” vakavuus kautta, mutta ohittaa kaikki muut tasot.,

Log-Muodossa

LogFormat direktiivi ohjaa asettelu ja muotoilu log tapahtumia. Apache käyttää oletuksena yhteistä Log formaattia (CLF), mutta voit määrittää oman formaatin merkkijonon muuttaaksesi kunkin lokin sisältämiä kenttiä.

Voit myös käyttää CustomLog direktiivi muuttaa sijainti kirjautua file. Linux, Apache yleisesti kirjoittaa lokit /var/log/apache2 tai /var/log/httpd hakemistoja riippuen KÄYTTÖJÄRJESTELMÄN ja Virtual Host ohittaa., Voit myös määritellä LogFormat-merkkijonon tiedostonimen jälkeen, joka soveltaa vain formaattijonoa tähän tiedostoon.

esimerkiksi seuraava kokoonpano kirjoittaa lokit logs/access_log käyttäen standardia ”yhteinen” – muodossa. Lokit/ alihakemisto on suhteessa hakemistoon määritelty ServerRoot direktiivin:

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

CustomLog ”lokit/access_log” yhteinen

löydät täydellisen luettelon kentät Apache log asiakirjat., Suosittelemme, että käytät vähintään seuraavat viisi kenttää, sillä ne ovat tärkeitä seuranta-palvelin, terveys-ja vianmääritys kysymyksiä:

  1. %>s – HTTP-tilakoodi pyynnöstä. Tämä osoittaa, lopullinen pyynnön tila sen jälkeen, kun jokin sisäinen uudelleenohjaus; alkuperäinen tila, käytä %s.
  2. %U – URL-polku pyysi, ilman mitään ylimääräisiä URL-parametrit, kuten query string.
  3. %a – IP-osoite asiakas tekee pyynnön., Tämä on hyödyllistä liikenteen tunnistamisessa tietystä lähteestä.
  4. %T – kuinka kauan pyynnön käsittely kesti sekunneissa. Tämä on hyödyllistä mitata nopeutta sivuston. Käytä % D samaa mittausta mikrosekunneissa.
  5. %{UNIQUE_ID}e – tunnetaan myös yleisesti pyyntötunnuksena, tämä kirjaa yksilöllisen tunnisteen jokaiseen pyyntöön. Tämä on hyödyllinen jäljitettäessä pyyntöä Apache Web-sovelluspalvelimelle.,

Osoitetaan Lempinimiä

LogFormat jouset voidaan määrittää lempinimiä, joita voit sitten käyttää CustomLog direktiivi kirjoittaa lokit käyttäen määrämuotoista. Tämän avulla voit käyttää samaa lokimuotoa useille lokitiedostoille ilman, että formaattia tarvitsee määritellä uudelleen joka kerta. Tämä on erityisen hyödyllistä käytettäessä erilaisia lokitiedostoja useille virtuaalisille isännille.

esimerkiksi luodaan esimerkkiformaatti ja nimetään se ”vhost_combinediksi.,”Luomme sitten CustomLog – direktiivin, joka kirjoittaa lokit tiedostoon vhost_combined-formaatilla.

LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combinedCustomLog /var/log/apache2/vhost.log vhost_combined

Muotoilut, kuten JSON

Tallentaa lokit tekstimuodossa tekee niistä helppo tarkistaa, jos teidän joskus tarvitsisi lukea lokitiedostoja. Tämä kuitenkin vaikeuttaa login hallintaratkaisujen kaltaisten työkalujen käyttöä lokien lukemisessa, koska näiden työkalujen on tiedettävä, miten lokit on muotoiltu. Useimmat log management-ratkaisut tukevat oletuksena Apache log-muodossa, mutta jos ei, sinun pitäisi harkita jäsennelty JSON-muodossa, kuten.,

JSON (lyhenne sanoista JavaScript Object Notation) on joustava muoto strukturoitujen tietojen tallentamiseen. JSON tallentaa kokoelman nestable nimi / arvo paria, joten voit tallentaa lähes kaikki tietotyyppi ja rakenne. JSON on myös tehokkaasti itse dokumentoiva, sillä avaimen nimi kuvaa sen sisältämää dataa. JSON tukee monia perustietotyyppejä, kuten merkkijonoja, numeroita, booleaneja, matriiseja ja nolla-arvoja.,

Tässä on esimerkki LogFormat, joka tallentaa lokit JSON-muodossa:

LogFormat "{ \"time\":\"%t\", \"remoteIP\":\"%a\", \"host\":\"%V\", \"request\":\"%U\", \"query\":\"%q\", \"method\":\"%m\", \"status\":\"%>s\", \"userAgent\":\"%{User-agent}i\", \"referer\":\"%{Referer}i\" }"

Default Virtual Host Ohittaa

Virtual Hosts (vhosts) käytetään ajaa enemmän kuin yksi sivusto yhden Apache-palvelin. Voit määrittää erillinen logging configuration kunkin vhost, joka on etusijalla maailmanlaajuinen logging configuration. Näin voit esimerkiksi kirjautua jokaisen verkkosivuston erilliseen hakemistoon. Jättää nämä parametrit pois oletusarvot global logging configuration.

esimerkiksi seuraava kokoonpano on vhost at esimerkki.,com. Lokit kirjoitetaan erillinen access.log ja error.log tiedostot /var/www/example.com/logs hakemisto:

seuraavat kohdat osoittavat, default configuration file paikoissa ja direktiiveissä käytetään eri Linux-jakeluissa.

Debian/Ubuntu/Linux Mint

Debian-pohjainen jakaumat, default vhost kokoonpano salaamaton sivustoja (portti 80) osoitteessa /etc/apache2/sites-available/000-default.conf. Oletusasetukset SSL/TLS-salatuille sivustoille (portti 443) on /etc/apache2/sites-available/default-ssl.conf.,

Oletusdirektiivien TAULUKKO

* ehdollistettu ympäristömuuttuja. Tarjoaa tukea usealle Apache-palvelimelle.

** ympäristömuuttuja. Käytetään dynaamisesti asettamaan ensimmäinen loki polku.

Red Hat/Fedora/CentOS

Red Hat-pohjainen jakaumat, tärkein asetustiedosto sijaitsee osoitteessa /etc/httpd/conf/httpd.conf. Voit sijoittaa ylimääräisiä vhost config tiedostot /etc/httpd/conf.d hakemistoon, joka on automaattisesti lukea palvelin aloittaa.

Oletusdirektiivien TAULUKKO

* ehdollistettu ladatulla log_config_modulella.,

** ehdollistettu ladatulla logio_modulella.

OpenSUSE

OpenSUSE, default vhost config salaamaton sivustoja (portti 80) sijaitsee osoitteessa /etc/apache2/default-vhost.conf, kun taas default config sivustoja, salattu SSL/TLS-protokolla sijaitsee osoitteessa /etc/apache2/default-vhost-ssl.conf.

Oletusdirektiivien TAULUKKO

* ehdollistettu ladatulla log_config_modulella.

** ehdollistettu ladatulla logio_modulella.

*** ehdollistettu ladatulla mod_ssl: llä.,

Log-Liittyvät Moduulit

Apache web-palvelin tarjoaa useita moduuleja, jotka joko muuttaa Apache toimii tai laajentaa sen valmiuksia. Seuraavat moduulit lisäävät tai muuttavat Hakkuiden käyttäytymistä hyödyllisellä tavalla.

mod_log_config

Tämä on perusta logging module Apache käyttää, ja me kattaa tässä osassa oppaan.

mod_log_debug

Tämä moduuli tarjoaa lisää vaihtoehtoja hakkuut debug-viestejä., Esimerkiksi, voit kirjautua tapahtumia tiettyyn URL-polku, kirjaudu pyyntöjä sen jälkeen, kun he ovat käsitelty, kirjaudu viestit tietyn asiakkaan, jos ne johtavat aikakatkaisut, ja enemmän. Huomaa, että tämä moduuli on kokeellinen ja ei välttämättä sisälly Apache Jakelu.

esimerkiksi seuraava kokoonpano lokit IP-osoite asiakas aina, kun se pyytää erityinen polku:

mod_log_forensic

Tämä moduuli mahdollistaa puunkorjuu ennen ja sen jälkeen, kun pyyntö on käsitelty. Jokaiselle tietueelle annetaan yksilöllinen tunniste, jonka avulla voidaan jäljittää tapahtumia oikeuslääketieteellisen lokin ja normaalin lokin välillä., Oikeuslääketieteellinen metsuri ei kuitenkaan tue mukautettuja formaatteja. Tämä moduuli korvaa myös mod_unique_id-moduulin.

Kun moduuli on käytössä, voit käyttää forensic avainsana määrittää, mitkä loki-tiedosto on oikeuslääketieteen log. Voit myös käyttää %{forensic-id} kuvio muilla LogFormat jouset lisätä rikosteknisten tietojen normaaliin lokit. Täällä, käytämme /var/www/example.com/logs/forensic.log:

Jokainen rivi oikeuslääketieteen log alkaa joko ”+” tai ”-” merkki., ”+”osoittaa tämän pyynnön syöttölokirivin ja” – ” tarkoittaa samaa pyyntöä koskevia myöhempiä merkintöjä.

esimerkiksi seuraava merkintä loki luotiin soittamalla http://localhost käyttäen oletuksena log-muodossa:

loppu kirjautuu merkintä sama pyyntö näkyy:

-3264:55958cb4:0

Jos loppu merkintä ei näy lokissa, pyyntö ei ole täydellinen.

mod_logio

Tämä moduuli lisää kykyä kirjata lähetettyjen ja vastaanotettujen tavujen määrä pyyntöä kohti., Tähän sisältyvät vastaanotetut, lähetetyt ja siirretyt tavut (vastaanotettujen ja lähetettyjen yhdistelmä). Moduulissa otetaan tarkasti huomioon myös SSL-ja TLS-salauksen aiheuttamat koon muutokset. Tämä moduuli vaatii mod_log_configin ja sisältyy tyypillisesti Apacheen oletuksena.

Tämä moduuli lisää LogIOTrackTTFB On|Off direktiivi, joka vaihtaa kyky seurata aika ensimmäinen tavu (TTFB). TTFB on aika, joka kuluu siitä, kun pyyntö vastaanotetaan, kun vastaus lähetetään ensimmäisen kerran asiakkaalle., Voit sitten käyttää %^FB sisältää TTFB mittaukseen LogFormat string.

mod_filter

Tämä moduuli tarjoaa tilannekohtainen suodattimia lähtö ketju rekisteröitymällä tahansa määrän suodatin tarjoajat. mod_filter ei ole spesifinen kirjaamiselle, vaan mahdollistaa suodatinoperaattoriin perustuvien erityisten pyyntöjen purkamisen. Konteksti kontteja ovat: main apache config, vhost config, sisällä Hakemisto tunnisteet, ja .htaccess-tiedostot.,

tämän moduulin käyttö mahdollistaa sellaisten pyyntöjen suodatuksen, jotka sisältävät tiettyjä ruiskutuskriteerejä ja joista IP-osoite on peräisin.

Tämä moduuli toimitetaan oletusarvoisesti monissa pakettijakaumissa, mutta se voi vaatia mahdollistamista. FilterTrace-direktiivi lähettää tietojen kirjaamista varten tiedot virhelokiin.,li> FilterDeclare – julistaa smart-suodatin

  • FilterProtocol – aiheuttaa mod_filter käsitellä vastaus otsikot oikein
  • FilterProvider – rekisterit filter tarjoajat
  • FilterTrace – mahdollistaa virheenkorjaus/diagnostisia tietoja virhelokin ennen provider käsittely
  • seuraava esimerkki koskee suodatus vhost yhteydessä säiliön ehdollisesti suodatin ja sisältää moduulit:

    mod_unique_id:

    Tämä moduuli rakentaa ympäristö, muuttuva ja yksilöllinen tunniste kullekin pyynnölle., Se sisältyy usein pakettijakeluihin, mutta saattaa vaatia mahdollistamista. Tämä yksilöllinen tunniste on kirjoitettu käyttöoikeuslokiin.

    Tämä moduuli on korvattu oikeuslääketieteellisissä tarkoituksissa mod_log_forensicilla, mutta sitä tuetaan edelleen muiden osalta.

    toisin kuin oikeuslääketieteellisessä tunnisteessa, yksilöllinen tunniste siirtyy sovelluksen käsittelijälle ympäristömuuttujan UNIQUE_ID kautta. Näin sovelluskehittäjät voivat jäljittää pyynnön verkkopalvelimen kautta sovelluspalvelimeen. Se voi olla hyödyllistä virheenkorjaus pyynnön.,

    Apache torjuu lasten prosessit pyyntöjen käsittelemiseksi, ja lapsitapaus käsittelee useita pyyntöjä kerrallaan. Tämän vuoksi on joskus suotavaa käyttää yksilöllistä tunnistetta tunnistaakseen yhden pyynnön useassa palvelintapauksessa ja lapsen prosesseissa.

    kun moduuli on otettu käyttöön, se tarjoaa oletusarvoisesti tunnisteen sovelluksen käsittelijälle.,

    esimerkiksi:

    UNIQUE_ID: Vaf3en8AAQEAAAtoQlAAAAAA

    – tunniste on valmistettu 32-bittinen IP-osoite, 32-bit process ID, 32-bit timestamp kytketty 16-bittinen laskuri tiukempi resoluutio kuin yhden sekunnin, 32-bit lanka-indeksi. Aikaleima komponentti on UTC estää ongelmia kesäaika muutoksia. Hakemuksen käsittelijän olisi käsiteltävä tunnistetta ainoastaan läpinäkymättömänä tunnisteena eikä leikeltävä aineosiksi.

    katso se. Analysoi se. Tutki se. Solve it

    See what matters.

    aloita ilmainen kokeiluversio

    Vastaa

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

    Siirry työkalupalkkiin