Het is mogelijk om de access logs van je website in te zien. Deze kun je bijvoorbeeld gebruiken om zelf rapportages over je website te genereren, of om precies te zien hoe laat en vanaf welke adressen je site werd bezocht. In dit artikel laten we zien hoe en waar je deze logs kunt vinden en welke informatie je uit deze logs kan halen.

Let op! Mocht je op zoek zijn naar de access logs van je Hypernode omgeving, dan kun je in het volgende artikel lezen waar je deze kunt vinden: Nginx access logs on Hypernode

Haal de access logs op via het Service Panel

Dit is de makkelijkste manier om de access logs van je website te verkrijgen. Hoe dat precies werkt staat hieronder beschreven:

  1. Log in op het Service Panel.
  2. Klik op je domeinnaam
  3. Klik op het tabblad Administratief.
  4. Klik op de optie Access logs.
  5. Je krijgt nu een .tar bestand met daarin de voor jouw beschikbare accesslogs van het geselecteerde domein.

Informatie uit de access logs halen

Om met de access logs aan de slag te kunnen is het belangrijk om te weten waar een regel in zo’n log nou precies uit bestaat. Als voorbeeld nemen we hiervoor het onderstaande voorbeeld:
157.55.39.63 – – [21/Sep/2014:00:40:23 +0200] “GET /wiki/Database_Backup_Terugzetten_Geavanceerd HTTP/1.1” 200 66675 “-” “Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)” “-” “-” 157.55.39.63 byte.nl pid:12320 572269 4000 8001 248016 80005
In deze ene regel kunnen we al de volgende informatie halen:

  • Request kwam vanuit IP-adres 157.55.39.63
  • Type request was een GET
  • Het gaat om de pagina byte.nl/wiki/Database_Backup_Terugzetten_Geavanceerd
  • Dit gebeurde om 00:40:23 op 21 september 2014
  • De useragent is Bingbot, dus het was een bot die op onze support documentatie is langsgekomen.
  • De status die de bot terug kreeg was een 200, dus dat is goed afgehandeld.
  • De gebruikte browser was Mozilla Firefox

Met de laatste vijf getallen kun je de zwaarte/complexiteit van je scripts inzichtelijk krijgen. Hieronder staat uitleg wat die cijfers nou precies inhouden:

  • Het eerste getal is de werkelijke tijd die het geduurd heeft om het verzoek af te handelen (gemeten in microseconden). Dus je verzoek komt binnen, klok wordt gestart, verzoek is volledig afgehandeld, klok wordt gestopt.
  • Het tweede getal is de zgn. ‘user-time’, oftewel de CPU-tijd die je verzoek gekost heeft om berekeningen te doen, zoals het opbouwen van de pagina.
  • Het derde getal is de zgn. ‘system-time’, oftewel de CPU-tijd die je verzoek gekost heeft aan system-calls. Denk hiervoor aan het openen van bestanden en het opzetten van netwerkverbindingen naar bijv. uw database.
  • Het vierde getal is de zgn. ‘children user-time’. Indien je verzoek zijn werk niet in een enkel proces kon afhandelen, maar daar meerdere processen/threads voor nodig had, staat hierin de tijd die alle subprocessen bij elkaar aan CPU-tijd hebben besteed om berekeningen te doen.
  • Het vijfde getal is de zgn. ‘children system-time’. Indien uw verzoek zijn werk niet in een enkel proces kon afhandelen, maar daar meerdere processen/threads voor nodig had, staat hierin de tijd die alle subprocessen bij elkaar aan CPU-tijd hebben besteed aan system-calls.

Voorbeelden informatie halen uit de access logs

Hieronder noemen we een aantal voorbeelden van hoe je bepaalde informatie uit je access logs kan halen.

Checken of er een brute force aanval op je site/shop is geweest

Stel, je krijgt van ons een mailtje dat je BPU te hoog is en je vermoed dat het een brute force aanval is geweest. Via de optie BPU verbruik in het Service Panel heb je geconstateerd dat je een hoge piek had twee dagen geleden en je wilt uitzoeken of het een brute force aanval was. Je gebruikt hiervoor de volgende commando’s:

zcat 20140930-access.log.gz| grep “wp-admin”| wc -l

Met dit commando lezen we de access log van 30 september, zoeken we of we een regel vinden waarin de tekst “wp-admin” (backend van WordPress) in voorkomt en het aantal keer dat dit gebeurd tellen we. Als dit aantal heel hoog is, dan kun je er vanuit gaan dat het brute force aanval is geweest. Voor Joomla! kun je i.p.v. wp-admin zoeken op administrator.

Checken hoe vaak IP-adressen voorkomen in de log

Stel, je hebt een hoog BPU en je wilt kijken vanuit welk IP-adres de meeste requests zijn binnengekomen. Je kunt hiervoor dan onderstaand commando gebruiken. Meer informatie over hoe je de top tien bezoekers kunt opvragen in Magento op Hypernode technologie vind je op de Hypernode support documentatie.

zcat 20140921-access.log.gz|awk '{print $1}'|sort|uniq -c| sort -nr

Hiermee lees je het bestand 20140921-access.log.gz, je wilt enkel het eerst woord uit de logs gebruiken, je sorteert de uitkomst en checkt welke waardes uniek zijn en telt hoe vaak die dan voorkomt. De uitkomst daarvan sorteer je weer numeriek en van hoog naar laag. Mits je de top 20 wilt hebben vul je het commando aan met “head -n20” zodat je het volgende commando krijgt:

zcat 20140921-access.log.gz|awk '{print $1}'|sort|uniq -c| sort -nr| head -n20
11