Ari Rantala -> Oppaat -> Apache Web-palvelin: muistiinpanot

9. Palvelimen käytön seuranta - Lokitiedostot

Ihan aluksi

Lokitiedostoista löytyvät vain Web-palvelimelle asti tulleet pyynnöt. Useista erilaisista välimuistiratkaisuista (mm. proxyt, selainten cachet) johtuen palvelimen lokeista ei varmuudella voi päätellä kuin Web-palvelimen kuormaa.

Tämä kappale on uusien Apachen ja Analogin versioiden osalta päivittämättä, joten tarkasta niiltä osin detaljit:

  • miten nykymuotoinen Apache lokittaa oletuksena? miten "maksimaalinen" lokitus?
  • Miten uusin Analog asennetaan?, lukeeko suoraan nykymuotoisen Apachen lokitusta? Parametrit sinänsä lienevät vielä ihan kuranttia tavaraa.

Miksi Web-palvelimen lokeja seurataan?

Syitä lokitiedostojen seurantaan on useita. Yleensä odotetaan vastauksia seuraaviin kysymyksiin:

  • Kuinka paljon Web-palvelin kuormittuu/sillä on käyttäjiä?
  • Mistä verkkoalueista käyttäjät tulevat eli ketkä Web-palvelua käyttävät?
  • Mihin aikaan eri käyttäjät Web-palvelua kuormittavat?
  • Mistä Web-palveluista saavutaan juuri sinun Web-palveluusi?
  • Mitä käyttäjät hakevat Web-palvelusta?
  • Mitä selaimia Web-palvelusi käyttäjät käyttävät?
  • Onko Web-palvelusi konfiguroitu oikein?
    • Virheilmoituksista voidaan päätellä monenlaista: Linkit, suojaukset yms. väärin asettettu.

Apachen lokitiedostot

Apachen lokitiedostojen sijaintia on käsitelty jo aiemmin. Oletuskäännöksen jälkeen Apache kirjoittaa tapahtumia siis seuraaviin lokitiedostoihin:

  • (/usr/local/apache/logs/) access_log
  • error_log

access_log -tiedoston lokiformaattia on joustava muutella, ja on mahdollista käyttää myös erikseen agent_log- ja referer_log -tiedostoa selainasiakkaiden ja viittajien kirjaamiseen. Nämä saa mukaan ottamalla käännökseen mukaan moduulit:

  • mod_log_agent
  • mod_log_referer

Omat pika-analyysit unix-komennoin

Apachen lokeista saa helposti pikasilmäyksen esim seuraavilla tavoilla

access_log

  • wc access_log
    • Paljonko lokitiedostossa rivejä?
  • grep  domain.fi access_log
    • Kaikki haut verkkoalueesta domain.fi
  • grep -c domain.fi access_log
    • Kuten edellä, Tässä lasketaan rivit.
  • grep -c 07/Mar/1998 access_log
    • Tiettyn päivämäärään kohdistuvat haut
  • grep -c 07/Mar/1998:23 access_log
    • Tiettyn päivämäärän tiettyyn tuntiin ( 23-alkuiset ) kohdistuvat haut.
  • grep -c "GET / " access_log
    • Palvelimen etusivuun kohdistuneet haut
  • grep -c "GET /index.html " access_log
    • Kuten edellä, Hieman toisin
  • grep -c "/~looseri" accesslog
    • Tietyn käyttäjän tiedostoihin kohdistuneet haut.

Vastaavia etsintöjä voit suorittaa tietenkin muihinkin lokitiedostoihin.

error_log

Kun testailet palvelimen toimintaa, voit seurata errot_log -tiedoston viimeisiä rivejä "reaaliakaisesti" jostakin terminaalista esim:

  • tail -f /usr/local/etc/httpd/logs/error_log

Webalizer -lokianalysaattori

Useat Linux-jakelut käyttävät Webalizer-nimistä http://www.mrunix.net/webalizer/ lokianalysaattoria lokitiedostojen analysointiin. Perusasetuksilla saadaan hämmästyttävän monipuolisia analyysejä Web-palvelimen käytöstä. Esim. Fedora Core 1 -jakelun analyysit löytyvät Web-palvelimen /var/www/html/usage -nimisestä hakemistosta eli osoitteesta:
  • http://www.palvelin.example/usage/
Statistiikka päivitetään lokitiedostoista päivittäin cronin avulla:

$ more /etc/cron.daily/00webalizer
#! /bin/bash
# update access statistics for the web site

if [ -s /var/log/httpd/access_log ] ; then
    /usr/bin/webalizer
fi
exit 0

Jos haluat ajaa Webalizerin muulloin, komenna:

# /usr/bin/webalizer

Huomaa, että usage-hakemistoon voi olla syytä asettaa rajoituksia sen suhteen mistä ja kuka sitä voi katsella (ks. luku 4).

Webalizer-ohjelman konfiguraatio löytyy tiedostosta: /etc/webalizer.conf

Ohjelmapaketin nimi on Fedorassa:

$ rpm -qa | grep webalizer
webalizer-2.01_10-14