Dieser Artikel ist die Fortsetzung des Tutorials, in dem erklärt wird, wie Protokolle aus einem OVH-Pool abgerufen werden. Ich empfehle Ihnen, es zu lesen, um den Rest zu verstehen.
Wenn Sie genau analysieren möchten, was auf Ihrer Website passiert, gibt es keine 36 Lösungen: Sie müssen in den Protokollen wühlen. Hier finden wir alle Informationen, aber offensichtlich roh. Und das ist das Problem. Nichts ist ungenießbarer als die Logs eines Webservers … Wenn Sie die Daten analysieren möchten, bleibt nichts anderes übrig, als die Apache-Logs in Excel zu importieren.
Ich erwähne Apache und Excel, aber es funktioniert zum Beispiel genauso gut für Nginx und LibreOffice.
Daten in Excel importieren? Einfach !
Einfach, ja, aber wenn Sie eine Datei importieren müssen… Schritt 30… Und vor allem, wenn die Quelldatei formatiert und getrennt ist. Wie zum Beispiel eine CSV-Datei.
Offensichtlich werden Apache-Logs nicht standardmäßig formatiert. Nehmen Sie dazu eine Ihrer Dateien und importieren Sie sie ohne weitere Bearbeitung direkt in Excel. Du wirst es schnell verstehen ?
Basierend auf dem Skript aus dem vorherigen Artikel werde ich Anweisungen hinzufügen, die die Protokolle vorbereiten und formatieren, damit sie leicht von Excel importiert werden können. Aber nicht nur ! Auch wenn dies eine Manipulation der Daten bedeutet, werden wir die Gelegenheit nutzen, unser Leben noch mehr zu vereinfachen.
Bei der Ankunft generiert das Skript:
- Eine einzige Protokolldatei des Ganzen
- Eine Datei speziell für den Google-Crawl
- Eine spezielle Datei für 404-Fehler
- Eine spezielle Datei für 301-Weiterleitungen
Warum so viele Dateien?
Die Analyse eines ganzen Monatsprotokolls kann sehr umfangreich sein und viele Maschinenressourcen erfordern. Sogar bis zu dem Punkt, dass Excel nicht mehr ausreicht.
Im Gebrauch stellte ich fest, dass ich mir am häufigsten 3 Dinge ansah: Was Google auf meiner Website ansah, dass es die 404-Fehler waren, um sie korrigieren zu können, und schließlich die Nachverfolgung meiner 301-Weiterleitungen.
Wenn ich diese 3 Fälle als separate Dateien isoliere, sind sie viel leichter und einfacher zu verarbeiten. Und auf jeden Fall haben wir immer die komplette Akte, wenn wir die Analyse weiterführen wollen.
Wichtiger Hinweis
Ich biete Ihnen ein Bash-Skript an, das auf einem Linux-Rechner, auf einem Windows-Rechner über Cygwin problemlos funktioniert, aber auf Rechnern unter Mac OS X durch die Verwendung des SED-Befehls Probleme macht.
Auf Macs ist SED nicht korrekt implementiert und Befehle, die ausgeführt werden, geben Fehler zurück.
Kein Problem, installieren Sie einfach die GNU-Version von SED, die über Homebrew verfügbar ist. Dies führt zu einer kleinen Änderung des Skripts.
Das Skript
Am Ende des ersten Tutorials fanden wir uns mit einem Ordner wieder, der X-Log-Dateien enthielt. So was :
Wir setzen das Skript fort, um diese Dateien nun zu verarbeiten.
#! / bin / bash # Verwendung: ./script-name.sh Domain mm-yyyy # Beispiel: ./script-name.sh memoinfo.fr 12-2014 # Ihre Domain, wird als Parameter des Befehls übergeben WEBSITE = $ 1 # Punkt, wird als Parameter des Befehls übergeben ZEITRAUM = $ 2 # Login Ihres OVH-Kontos LOGIN = dein-login-ovh # Passwort Ihres OVH-Kontos PASS = dein-Passwort # Zielverzeichnis. Standard auf dem Desktop (Mac). Ändere dich für das, was du willst ORDNER = $ HOME / Desktop / $ SITE / $ PERIODE # Header, der jeder Datei hinzugefügt wird HEADER = '"HOST" "SITE" "REMOTE-USER" "DATE" "ZONE" "ADDRESS" "STATUS" "WEIGHT" "REFERER" "USER-AGENT"' # Erstellen Sie den Ordner, der die Protokolle abruft. Obligatorischer Schritt, sonst gibt wget einen Fehler bezüglich seiner Protokolle zurück echo 'Ordner erstellen' mkdir -p $ ORDNER # Laden Sie Protokolle über wget mit den folgenden Optionen herunter: # -nv: nicht ausführliche Protokolle # -nd: Die Remote-Hierarchie nicht lokal erstellen # -r: Rekursiven Download aktivieren # -A: Geben Sie die Dateierweiterungen für den Download an. Getrennt durch Virgues, wenn mehrere # -P: Referenz-Stammverzeichnis # -o: wget-Protokolldatei echo 'Protokolle herunterladen ...' wget -nv -nd -r -A.gz -P $ FOLDER https://logs.ovh.net/$SITE/logs-$PERIODE/ --http-user = $ LOGIN --http-password = $ PASS - o $ DOSSIER / logs.wget.txt # Erstellung einer spezifischen Datei für den Google-Crawl. # -h: Entfernen Sie das Präfix von Dateinamen in der Ausgabe echo 'Erstellung bestimmter Google-Logs ...' zgrep -h '66 .249 '.*' Googlebot / 2.1 '$ FOLDER / *.gz> $ FOLDER / logs-google.txt # Erstellung einer spezifischen Datei für 404-Fehler echo 'Erstellung von spezifischen 404-Logs ...' zgrep -h '404' $ ORDNER / *.gz> $ ORDNER / logs-404.txt # Erstellung einer spezifischen Datei für 301-Weiterleitungen echo 'Erstellung spezifischer Protokolle 301 ...' zgrep -h '301' $ FOLDER / *.gz> $ FOLDER / logs-301.txt # Erstellung der Datei mit allen Protokollen zcat $ FOLDER / *.log.gz> $ FOLDER / full-logs.txt # Kopfzeilen zu jeder Protokolldatei für die Tabelle hinzufügen echo 'Kopfzeilen hinzufügen ...' sed -i "1i $ HEADER" $ FOLDER / logs - *.txt # Entfernen Sie unnötige Klammern aus Datumsfeldern echo 'Verbesserung ...' sed -i 's / [// g' $ FOLDER / logs - *.txt sed -i 's / ] // g' $ FOLDER / logs - *.txt Echo 'fertig'
Einige Erklärungen.
Bis zum Download-Teil mit Wget haben Sie die Erklärungen in meinem vorherigen Tutorial.
Nach dem Herunterladen erstellt das Skript jede spezifische Datei mit ZGREP, die die in den .gz-Archiven enthaltenen Dateien liest. Und für jede Datei lesen wir ein bestimmtes Merkmal, das die zu kopierenden Zeilen isoliert.
Dann gibt es die globale Datei. Es ist am einfachsten, Sie müssen es nur lesen, also verwenden wir ZCAT, das wie ZGREP den Inhalt einer .gz liest. Aber diesmal ohne Filter.
Dann fügen wir die Spaltenüberschriften für Excel hinzu, da sie nicht in den ursprünglichen Protokollen enthalten sind. Dadurch müssen Sie sie nicht jedes Mal neu kopieren … Diese Header ermöglichen es Ihnen, Filter in Excel zu erstellen.
Und schließlich werden wir die Dateien ein wenig aufräumen und die Klammern entfernen, die die Datumsfelder umgeben und die nutzlos sind.
Für die letzten beiden Manipulationen verwenden wir sed, mit dem der Inhalt der Dateien manipuliert werden kann.
Für Mac-Benutzer
Wie bereits erwähnt, funktioniert sed nicht ohne die GNU-Version von Homebrew.
Installieren Sie GNU-SED und alles, was Sie tun müssen, ist die Aufrufe zu bearbeiten. Tatsächlich müssen Sie nur 3 Zeilen ändern … um sie sed
in gsed
. Das ist alles !
gsed -i "1i $ HEADER" $ FOLDER / logs - *.txt gsed -i 's / [// g' $ FOLDER / logs - *.txt gsed -i 's / ] // g' $ FOLDER / logs - *.txt
Verwenden
Um das Skript auszuführen, verweise ich Sie auf mein vorheriges Tutorial, da es auf die gleiche Weise funktioniert.
Um es kurz zu machen:
./script-name.sh Domäne mm-yyyy
Wenn alles gut gegangen ist, sollten Sie dies erhalten und Ihre Dateien können in Excel importiert werden:
Excel-Import
Im letzten Schritt importieren wir schließlich unsere Protokolle in Excel.
Gehen Sie zur Registerkarte “Daten”, dann zur Gruppe “Externe Daten”, wählen Sie die Option “Aus Text” und wählen Sie eine Datei aus:
Es öffnet sich ein neues Dialogfeld und wählen Sie die Optionen „getrennt“ mit der Kodierung „UTF8“ und klicken Sie auf „Weiter“:
Aktivieren Sie in diesem Fenster die folgenden Optionen, Trennzeichen „Leerzeichen“ und Textkennung „Anführungszeichen“. Klicken Sie auf „Weiter“:
Lassen Sie die Optionen in diesem Fenster unverändert und klicken Sie auf „Fertig“:
Ein letztes Fenster fragt Sie, aus welcher Zelle die Daten kopiert werden sollen. Wenn dies noch nicht der Fall ist, klicken Sie auf Ihre Zelle „A1“ und klicken Sie auf „OK“:
Lass es laufen. Dies kann je nach Dateigröße länger oder kürzer sein, und fertig! es ist vollbracht !
Hier sind wir ! Sie müssen lediglich einen Filter platzieren oder eine Pivot-Tabelle erstellen und los geht die Analyse.
Ich hoffe, Sie finden dieses Skript nützlich.
Zögern Sie nicht, Verbesserungsvorschläge zu machen.