Apache2
Palvelimessa logit ovat yhtiä tärkeimpiä tiedostoja, kun aletaan virhettä etsimään. Logit pitävät yllä myös mitä on tapahtunut, ja niillä voidaan ennustaa mitä tulee tapahtumaan. Otin tähän artikkeliin esimerkkilogiksi seurantaan oman palvelimen apache2 logit.

Apache logittaa kahteen eri tiedostoon, kahta eri tyyppistä logia. Tiedostot ovat nimeltään error.log ja access.log. Error.log nimensä mukaan pitää sisällään apachen päällä toimivien nettisivujen virheet, kun taas access.log logittaa kaikki apachen yhteydenotot mm. käyttäjän sivunpäivitykset, sivuvaihdot.

Itselläni pyörii omalla palvelimellani webbisivut, jotka ovat kirjoitettu php:lla. Kävin tarkastelemassa apachen error.logia, ja otin sieltä yhden esimerkki rivin:
[Thu Sep 12 22:21:14 2013] [error] [client 198.143.xxx.xxx] PHP Notice: A session had already been started - ignoring session_start() in /var/sivun/osoite/public_html/index.php on line 4

- Ensimmäiset hakasulut sisältävät ajan milloin virhe on syntynyt ([Thu Sep 12 22:21:14 2013])
- Toiset hakasulut kertoo että kyseessä on virhe ([error])
- Kolmannet hakasulut kertoo että kyseessä on asiakasliittymästä aiheutuva virhe, ja sen on aiheutunut kyseisestä ip:stä "198.143.xxx.xxx" (loppu osa sensuroitu) ([client 198.143.xxx.xxx])
- Neljänneksi kerrotaan virheen syy, jonka on antanut PHP. Virhe ei ole kriittinen, vaan huomio. PHP antaa huomautuksen että sessio jota yritin luoda, on jo olemassa, ja PHP ei ota huomioon antamaani session_start() funktiota, joka löytyy paikasta /var/sivun/osoite/public_html/index.php ja riviltä 4. Tuosta ilmoituksesta minun on helppo päätellä, että käyttäjä tulee saamaan session_start():n kahdesti yhdellä sivunlatauksella, joka ei ole tarpeellista.

Prosessien seuranta
Saat kaikki palvelimesi prosessit näkyviin komennolla:

$ sudo ps x

Jokainen käynnissä oleva prosessi on identifikoitu numerolla. Näitä numeroita kutsutaan PID:ksi, joka tulee englanninkielisestä sanasta Process Identifier.
Palvelimen ylläpitäjänä, sinulla on oikeus hallita näitä prosesseja, käynnistää / lopettaa niitä, kuin vain haluat.
ps x antoi minulle seuraavanlaisen viimeisen rivin:
1870 pts/0 R+ 0:00 ps x

Tärkeimmät kohdat tuossa on ensimmäinen ja viimeinen kohta. Ensimmäinen kertoo mikä on prosessin PID-arvo, ja viimeinen prosessin nimen. Prosessi siis oli juuri antamani komento, joka näkyi myös hetken kyseisenä prosessina. Voimme yrittää sulkea prosessin käskyllä:

$ sudo kill -9 1870

Komento todennäköisesti antaa seuraavan ilmoituksen:
bash: kill: (1870) - No such process

Kyseinen ilmoitus johtuu siitä, että ps x oli jo ehtinyt lopettaa itse prosessinsa, kun oli saanut prosession tiedot tulostettua näytöllesi. Kun saamme kyseisen ilmoituksen, voimme olla myös varmoja, että kyseinen prosessi on onnistuneesti lopetettu.