Googlebot: Logfiles für die händische Analyse vorbereiten

Wenn man sich die Googlebot-Zugriffe auf eigenen Projekten genauer anschauen möchte, hat man eventuell ein Problem. Denn die interessanten Einträge befinden sich in den Logdateien. Diese Dateien sind schon bei normalen Projekten mehrere GB pro Monat groß. Auch wenn es geht, ist es einfacher, wenn man mit kleineren Datenmengen arbeitet. Dieser Blogpost zeigt dir, wie du mit Standardwerkzeugen auf der Konsole deine Logfiles vorbereitest, damit du in Excel, Splunk, MySQL u.a. die Googlebot-Zugriffe auswerten kannst.

Es gibt viele spezielle Programme, um Logfiles zu bearbeiten. Aber für dieses Blogpost benutze ich nur Linux-Standardprogramme. Damit ich nicht in die Versuchung komme, mir zusätzliche kleine Tools zu installieren, habe ich meine Anleitung auf einem Managed-Server von domainfactory getestet.

Diese Anleitung setzt ganz rudimentäre Grundkenntnisse auf der Konsole voraus. Achtung: Die Anleitung ist nach bestem Wissen und Gewissen erstellt, trotzdem ist es auf der Konsole immer gefährlich. 🙂 Bitte sei vorsichtig!

Vorbereitung

Da man nicht mit den Orginaldateien „spielt“, werden die benötigten Dateien in ein neues Verzeichnis kopiert. Also einloggen und das neue Verzeichnis erstellen:

mkdir -p logfile-test/original

„mkdir“ ist der Befehl für das Erstellen von Verzeichnissen und mit dem Parameter „p“ können wir direkt verschachtelte Verzeichnisse anlegen.

Kopieren der Originaldateien

Bei domainfactory liegen die Logfiles im Verzeichnis „/logs“. Wir wollen nur die Dateien für den Monat Februar (‚2015-02‘) und kopieren die mit diesem Befehl:

cp logs/*-2015-02*.gz logfile-test/original

„cp“ steht für copy/kopieren. Danach kommt das Verzeichnis in dem sich die Logdateien befinden, gefolgt von dem Zielverzeichnis.

Wenn die Daten im komprimierten Format vorliegen (erkennen kann man das an der Endung ‚gz‘) müssen wir die Dateien noch entpacken.

cd logfile-test/original
gunzip *

Zusammenfügen zu einer Datei

In dem Verzeichnis liegen jetzt ganz viele einzelne Log-Dateien. Die kombinieren wir jetzt zu einer großen. Wenn wir vorher in das „original“-Verzeichnis gewechselt sind, müssen wir jetzt wieder eine Ebene höher.

cd ..
cat original/* > combined_logfile.log

Jetzt haben wir alle Dateien zu einer großen Datei zusammengefügt. Bisher haben wir die Logdateien nur ein wenig vorbereitet, jetzt werden die tatsächlich bearbeitet.

Reduzierung auf den Googlebot

Uns interessieren nur die Einträge, die vom Googlebot gemacht wurden. Deshalb löschen wir alle anderen:

sed -i '/Googlebot/!d' combined_logfile.log

„sed“ ist ein feines Tool für die Bearbeitung großer Textdateien. Mit dem Parameter „i“ wird das Ergebnis in die gleiche Datei zurückgeschrieben. „Googlebot“ ist die Zeichenkette, die wir suchen und durch „!d“ sagen wir ’sed“, dass die Zeile gelöscht werden soll, bei der die gesuchte Zeichenkette nicht vorkommt.

Verifzierung der Googlebot-Zugriffe

Da es Crawler gibt, die sich als Googlebot ausgeben, wir aber nur den echten Googlebot auswerten wollen, kommt jetzt noch eine sogenannte ReverseDNS-Abfrage. Mit ReverseDNS-Abfragen erfährt man die Domain zu einer IP. Für diese Aufgabe liefert der Apache das passende Werkzeug direkt mit: „logresolve„. Aber Achtung, logresolve benötigt als erste Angabe in jeder Zeile die IP-Adresse. Bei domainfactory kann (je nach Einstellung) am Anfang auch die Domain stehen. Die Domain muss dann noch entfernt werden:

sed -i 's/^www.example.org //g' combined_logfile.log

Dieses Mal nutzen wir das „Suchen & Ersetzen“ von sed. Wir suchen nach dem Domainnamen am Anfang der Zeile und löschen ihn.

Jetzt haben wir die Logdatei so vorbereitet, dass wir „logresolve“ ausführen können:

logresolve < combined_logfile.log > resolved_logfile.log

Der Googlebot kommt von Domains die folgendermaßen aussehen:
crawl-66-249-78-86.googlebot.com

Alle Zeilen, die nicht von einer solchen Subdomain kommen, können folgendermaßen gelöscht werden:

sed  '/^crawl\S*.googlebot.com/!d' resolved_logfile.log > googlebot_access.log

In der Datei googlebot_access.log befindet sich jetzt das Ergebnis unserer Bemühungen. Jetzt ist die Datei schon viel handlicher und kann mit dem Tool deiner Wahl ausgewertet werden.

Wenn du nicht genau weißt, was du nun mit dem Logfile machen sollst: Der Stefan hat da Slides für: http://www.trustagents.de/blog/logfile-analyse-seo-campixx (ab Slide 27)

2 Kommentare
  1. Dominik
    Dominik sagte:

    Sehr interessanter Artikel!

     

    Aber das wird nicht funktionieren:

    cat original/* &gt; combined_logfile.log

     

    Sollte wohl heissen:

    cat original/* > combined_logfile.log

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert