So installieren und verwenden Sie GoAccess Web Log Analyzer mit Apache unter Debian 7

Einführung

Mit GoAccess können Sie Webserver-Protokolle mithilfe eines einfachen Befehlszeilen-Dashboards in Echtzeit überwachen, um Verkehrsdaten schnell anzuzeigen und zu analysieren. Es läuft vollständig in einem Terminal mit Statistiken, die in separaten Panels auf einem scrollbaren Dashboard angeordnet sind. Es ist auch möglich, mit GoAccess HTML-, JSON- und CSV-Webverkehrsberichte zu generieren.

In diesem Tutorial wird gezeigt, wie Sie die Software von der Quelle aus installieren und wie Sie das Programm in der Befehlszeile verwenden, anzeigen und navigieren.

GoAccess funktioniert mit Protokolldateien von fast jedem anderen Webserver. Die spezifische Formatierung der Protokolldatei muss jedoch in GoAccess definiert sein, damit sie ordnungsgemäß funktioniert.

Dieses Handbuch konzentriert sich auf die Verwendung von Apache als ausgewählten Webserver mit oder ohne konfigurierten virtuellen Hosts.

Voraussetzungen

Bitte füllen Sie diese Voraussetzungen aus, bevor Sie mit diesem Lernprogramm beginnen.

Je mehr Web-Verkehr der VPS verarbeitet, desto mehr Daten muss GoAccess verarbeiten - in diesem Fall ist mehr besser.

Schritt 1 - Aktualisieren Sie die Systempakete

Beginnen Sie mit "+ ssh " auf Ihrem Server als Benutzer, der über die Berechtigung " sudo +" verfügt. Führen Sie dann die folgenden Schritte aus.

ssh @

Dieser Befehl aktualisiert die Package Manager-Datenbank + apt-get.

sudo apt-get update

Schritt 2 - Systempakete aktualisieren

Installieren Sie alle neuen Updates für die Debian-Systempakete.

sudo apt-get upgrade

Bestätigen Sie, wenn Sie zum Aktualisieren neuer Pakete aufgefordert werden, indem Sie "+ y +" für "yes" eingeben.

Schritt 3 - Installieren Sie das Build-Essential-Paket

Das Paket + build essential + enthält einige sehr wichtige Hilfspakete wie + make +, die zum Kompilieren von Software unter Debian und Linux erforderlich sind. Dies ist eine Notwendigkeit für die Installationsschritte von GoAccess später im Handbuch.

So installieren Sie das Paket mit + apt-get:

sudo apt-get install build-essential

Schritt 4 - Installieren Sie GoAccess-Abhängigkeiten

Hier sind die Abhängigkeiten aufgeführt, die für die Installation und Verwendung von GoAccess auf Ihrem VPS erforderlich sind. Erwerben Sie sie mit dem Paket-Manager "+ apt-get +".

sudo apt-get install libncursesw5-dev libglib2.0-dev libgeoip-dev libtokyocabinet-dev

Schritt 5 - Richten Sie das Build-Verzeichnis ein

Nachdem wir die erforderlichen Systempakete installiert haben, können wir GoAccess beziehen und erstellen.

Das Verzeichnis "+ / usr / local / src +" ist ein geeigneter Ort, um die GoAccess-Software zu erstellen. Geben Sie Ihrem * aktuellen * Debian-Benutzerkonto den Besitz dieses Verzeichnisses, indem Sie Folgendes ausführen:

sudo chown $USER /usr/local/src

Geben Sie dann dem Verzeichnis Lese-, Schreib- und Ausführungsberechtigungen für denselben Benutzer über den folgenden Befehl:

sudo chmod u+rwx /usr/local/src

Wechseln Sie mit dem Befehl + cd + in dieses Verzeichnis:

cd /usr/local/src

Schritt 6 - Downloaden und extrahieren Sie den GoAccess-Quellcode

GoAccess ist in der Release-Version 0.8.5 für den zum Zeitpunkt des Schreibens stabilen Build enthalten. Verwenden Sie zum Herunterladen den folgenden Befehl + wget +.

wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz

Jetzt können Sie mit dem Befehl "+ tar" die heruntergeladene "+ .tar.gz" -Datei und ihren Inhalt extrahieren und entpacken.

tar -zxvf goaccess-0.8.5.tar.gz

Schritt 7 - Kompilieren und installieren Sie den Quellcode

Wechseln Sie wie folgt in das neu entpackte Verzeichnis.

cd goaccess-0.8.5/

Führen Sie das configure-Skript in diesem Verzeichnis mit den beiden im nächsten Befehl angegebenen Präfixen aus:

./configure -enable-geoip -enable-utf8

Verwenden Sie den Befehl + make +, um das makefile zu erstellen, das für die Installation von GoAccess erforderlich ist.

make

Der folgende Befehl installiert GoAccess (unter Verwendung des zuvor erstellten makefile) in Systemverzeichnissen und macht es über Debian ausführbar.

sudo make install

Schritt 8 - Bearbeiten Sie die GoAccess-Konfigurationsdatei

In der Hauptkonfigurationsdatei von GoAccess sind mehrere Zeilen kommentiert, die Sie _kommentieren müssen, um einige erweiterte Funktionen des Programms später im Lernprogramm nutzen zu können.

Wir werden die Datei mit dem Texteditor "+ vi +" folgendermaßen bearbeiten:

sudo vi /usr/local/etc/goaccess.conf

Ein Kommentar in dieser Konfiguration wird mit einem "+ # " gekennzeichnet und bedeutet, dass der Server die nachfolgenden Informationen in derselben Zeile danach ignoriert. In dieser Datei müssen insgesamt zwei " # +" - Symbole entfernt werden, um zwei Zeilen aus dem Kommentar zu entfernen.

Das erste ist die Einstellung "+ Datumsformat" und hier sieht es so aus.

# Apache log date format. The following date format works with any
# of the Apache's log formats below.
#
#date-format %d/%b/%Y

Um das Kommentarsymbol (+ # +) zu entfernen, drücken Sie mehrmals + j +, um den Cursor auf die zu bearbeitende Zeile zu bewegen, bei der es sich um die Zeile + Datumsformat% d /% b /% Y + handelt . Sobald es die Linie erreicht und das + # + auswählt, drücken Sie + x +, um es zu löschen und zu entfernen.

Bei richtiger Ausführung sollte Ihre Änderung nun so aussehen:

# Apache log date format. The following date format works with any
# of the Apache's log formats below.
#
date-format %d/%b/%Y

_ * Hinweis: * Sie können + ESC + drücken und +: q + und dann + ENTER + eingeben, um die Datei zu beenden, ohne Ihre Änderungen zu speichern, wenn Sie glauben, Fehler oder versehentliche Änderungen vorgenommen zu haben. _

Die zweite Zeile, die nicht kommentiert werden muss, ist eine der Zeilen "+ log-format +", und die genaue Zeile hängt von Ihrem Apache-Setup ab. Wählen Sie die erste Option, wenn Sie nur einen Apache-Host ausführen, und die zweite, wenn Sie virtuelle Hosts eingerichtet haben. Wenn Sie sich nicht sicher sind, sollten Sie wahrscheinlich den Abschnitt "Nicht virtuelle Hosts einrichten" befolgen.

_ * Warnung: * Nur eine * dieser Zeilen auskommentieren. _

  • Für nicht-virtuelle Host-Setups *

Entfernen Sie bei einem Setup ohne virtuelle Hosts das Rautezeichen ("+ # +") der folgenden Zeile auf die gleiche Weise wie zuvor.

# NCSA Combined Log Format
#
log-format %h %^[%d:%^] "%r" %s %b "%R" "%u"
#
  • Für virtuelle Host-Setups *

Entfernen Sie bei einem Setup mit virtuellen Hosts das Raute-Zeichen der folgenden Zeile ("+ # +") auf die gleiche Weise wie zuvor.

# NCSA Combined Log Format with Virtual Host
#
log-format %^:%^ %h %^[%d:%^] "%r" %s %b "%R" "%u"
#

Drücken Sie nach dem Auskommentieren einer der Zeilen im Protokollformat die Tastenkombination "+ ESC ". Geben Sie dann ": wq" ein und drücken Sie "+ ENTER". Dadurch werden die Änderungen, die wir an der Datei vorgenommen haben, gespeichert und der Texteditor + vi + beendet.

Wir können jetzt GoAccess für alle Apache-Protokolldateien im Nur-Text-Format ausführen, die die unterstützten Formatierungskriterien erfüllen.

Schritt 9 - Fügen Sie Ihren Benutzer der Gruppe "adm" hinzu

Fügen wir unseren aktuellen Benutzer der Administratorgruppe (* adm *) in Debian hinzu, damit wir diese Befehle ausführen können, ohne das * sudo * -Präfix für Root-Benutzerberechtigungen zu benötigen.

+ usermod + kann die Eigenschaften unseres Benutzers ändern, indem das Argument + -g + und der Gruppenname, den wir zu (* adm *) hinzufügen möchten, gefolgt von dem betreffenden Benutzer (in diesem Fall * sammy *) angegeben werden. Stellen Sie sicher, dass Sie im nächsten Befehl "++" durch Ihren eigenen Linux-Benutzernamen ersetzen.

sudo usermod -g adm

Trennen Sie nach dem Ausführen des obigen Befehls die Verbindung zu Ihrem VPS, indem Sie "+ exit " und dann " ENTER " eingeben. Melden Sie sich dann mit Ihrem sudo-Benutzer wieder beim VPS an. Dies ist so, dass die Änderungen, die wir zuvor mit ` usermod +` am Benutzer vorgenommen haben, wirksam werden.

exit
ssh @

Sie sollten nun über die richtigen Berechtigungen verfügen, um GoAccess als dieser Benutzer * auszuführen, ohne sudo * zu verwenden. Außerdem sollten Sie Zugriff auf das Apache-Protokollverzeichnis haben.

Jetzt suchen wir das Protokollverzeichnis.

Schritt 10 - Suchen Sie die Protokolldateien

Webserver zeichnen im Allgemeinen alle eingehenden und verarbeiteten HTTP-Anforderungen an Protokolldateien auf.

Wir müssen herausfinden, wo Apache seine Protokolle speichert, damit wir sie verwenden können. Standardmäßig werden auf Debian-Systemen Apache-Protokolldateien gespeichert in:

+ / var / log / apache2 +

Um den Inhalt dieses Verzeichnisses anzuzeigen, können Sie den Befehl list folgendermaßen verwenden:

ls /var/log/apache2

Hier finden Sie die zuvor beschriebenen Protokolldateien, von denen einige in "+ .gz " - Dateien komprimiert sind, wenn Ihr Server lange genug ausgeführt wurde. Das aktuellste, das derzeit auf den Webserver geschrieben und von diesem verarbeitet wird, ist das unkomprimierte mit dem Namen " access.log +".

Bei einem Setup mit konfigurierten virtuellen Hosts müssen Sie möglicherweise "+ cd " aus " / apache2 +" in Unterverzeichnisse kopieren, um die Protokolldateien der einzelnen Hosts zu finden.

Wenn Sie die Protokolldateien hier gefunden haben, fahren Sie mit dem nächsten Schritt fort (* Schritt 11 *).

  • Weitere Suche *

Sie müssen diese weiteren Informationen nur lesen, wenn Sie Probleme beim Auffinden Ihrer Protokolldateien haben.

Der Speicherort dieser Zugriffsprotokolle wird durch die Direktive "+ CustomLog" in der Apache-Konfiguration gesteuert. Wenn Sie diese Einstellung geändert haben, befinden sich Ihre Apache-Zugriffsprotokolle möglicherweise in einem anderen Verzeichnis.

Um die Direktive "+ CustomLog " und ihre Einstellungen zu finden, können Sie " grep +" für eine der Apache-Konfigurationsdateien verwenden, wie im nächsten Befehl gezeigt.

Dadurch werden alle benutzerdefinierten Verzeichnisse ausgegeben, die in der Datei "+ apache2.conf +" hinzugefügt wurden.

grep CustomLog /etc/apache2/apache2.conf

Alternativ können Sie diesen Befehl ausführen, der einige Zeit in Anspruch nehmen kann, wenn sich auf Ihrem Server viele Dateien befinden:

sudo find / -name access.log

Dadurch werden alle Dateien auf dem System mit dem Namen "+ access.log +" angezeigt.

Schritt 11 - Führen Sie GoAccess aus

Sobald sich das Verzeichnis mit Ihren Apache-Server-Protokolldateien befindet, können Sie mit dem nächsten Befehl GoAccess auf diesen ausführen. Stellen Sie in diesem Befehl sicher, dass "++" durch Ihren eigenen Protokolldateiverzeichnispfad ersetzt wird, falls dieser vom Standard-Apache-Pfad abweicht.

goaccess -f  -a

Sobald Sie diesen Befehl ausführen, wird das GoAccess-Dashboard angezeigt.

Das Argument "+ -f " weist das Programm an, den angegebenen Verzeichnispfad zu verwenden, und das Argument " -a +" aktiviert alle aufgezeichneten Statistiken für jeden analysierten Host-Agenten.

  • Optional: Archivierte Protokolle extrahieren *

Wenn Sie GoAccess für ältere Protokolle ausführen möchten - die komprimierten Dateien vom Typ "+ .gz +" - müssen diese extrahiert und entpackt werden. Das Programm wird * nicht * auf diesen komprimierten Dateien mit dem oben gezeigten Befehl ausgeführt.

Sie können dieses Extrahieren mit dem Programm + gunzip + in Debian durchführen, wenn Sie dies wünschen.

Zum Beispiel:

sudo gunzip /var/log/apache2/

Der Dateiname "+ access.log.10.gz +" am Ende des Befehls muss mit dem Namen der komprimierten Datei übereinstimmen, die Sie extrahieren möchten.

Schritt 12 - Navigieren Sie zu GoAccess

Dies ist das GoAccess-Dashboard.

So interagieren Sie mit dem Dashboard:

  • Durch Drücken von + F1 + oder + h + wird ein kleines Hilfefenster geöffnet, in dem die Tasten und ihre Funktionen aufgelistet sind.

  • + 0-9 + oder + SHIFT + 0-9 + wählt das jeweils nummerierte Modul aus und setzt es auf aktiv. Die entsprechenden Nummern sind im Dashboard für jeden Abschnitt zu sehen.

  • + o + oder + ENTER + wird zum Erweitern des aktuell im Dashboard ausgewählten Moduls verwendet. Module werden im nächsten Abschnitt erklärt.

  • + j + scrollt in einem erweiterten aktiven Modul nach unten und + k + in einem erweiterten aktiven Modul nach oben.

  • + s + zeigt die Sortieroptionen an, die für das aktive Modul verfügbar sind.

  • Wenn Sie abschließend "+ q +" drücken, wird das Programm oder das aktuelle Fenster geschlossen oder ein aktives Modul ausgeblendet, je nachdem, wie tief Sie gerade im Dashboard sind.

  • Mehr Interaktion kann durch die folgenden Tasten erreicht werden: *

  • Wenn Sie die Taste "+ TAB" auf Ihrer Tastatur drücken, werden die Module der Reihe nach durchlaufen.

  • Durch gleichzeitiges Drücken von + SHIFT + + + TAB + wird das Gegenteil der letzten Aktion ausgeführt und die Module werden rückwärts durchlaufen.

  • + F5 + kann gedrückt werden, um das Dashboard zu aktualisieren und neu zu zeichnen.

  • Durch Drücken von + c + wird das aktuell im Dashboard verwendete Farbschema festgelegt und geändert.

  • + g + verschiebt den Fokus auf das erste Element und zurück zum oberen Rand des Dashboard-Bildschirms.

  • + G + scrollt zum letzten Element oder zum unteren Rand des Dashboard-Bildschirms.

Schritt 13 - Module verstehen

Nachdem Sie sich nun in der Benutzeroberfläche bewegen können, werfen wir einen Blick auf die tatsächlichen Inhalte der einzelnen Module. Die Abschnitte hier entsprechen den nummerierten Modulen und Titeln im Programm. Alle angezeigten _ "Treffer" _ -Werte basieren auf der Gesamtmenge der Anforderungen, die in der bereitgestellten Protokolldatei bzw. den bereitgestellten Dateien gefunden wurden (sofern nicht anders angegeben).

  • Dashboard - Insgesamt analysierte Anfragen *

Das Dashboard zeigt die Anzahl der gültigen Anforderungen, ungültigen Anforderungen, die für die Analyse der bereitgestellten Daten benötigte Zeit, eindeutige Besucher des Servers, eindeutig angeforderte Dateien, eindeutige statische Dateien (normalerweise Bilddateitypen), eindeutige HTTP-Verweise (URLs), eindeutige 404 Nicht gefundene Fehler, die Größe der analysierten Protokolldatei und zuletzt die verbrauchte Bandbreite.

  • 1 - Eindeutige Besucher *

Dieses Modul ist tageweise mit Datumsangaben aufgeführt. HTTP-Anforderungen mit derselben IP, demselben Datum und demselben Agenten werden als eindeutiger Besuch betrachtet. Dies schließt Web-Crawler / Spider ein.

  • 2 - Angeforderte Dateien *

Angeforderte Dateien zeigt die am häufigsten angeforderten Dateien auf Ihrem Webserver an und zeigt hits als Zahl und Prozentsatz an, zusammen mit der Zeit, für die der Host bedient wurde (Bandbreite), dem verwendeten Protokoll und dem verwendeten Anforderungstyp.

  • 3 - Angeforderte statische Dateien *

Umfasst nur statische Dateien, die am häufigsten angefordert werden, wie: + jpg +, + css +, + swf +, + js +, + gif + und + png +, mit denselben Metriken wie die letzten Modul für jedes Vorkommen zur Verfügung gestellt.

  • 4 - HTTP 404-URLs *

In diesem Modul werden, wie in den vorherigen Modulen mit denselben Statistiken, die häufigsten wiederkehrenden HTTP 404: Not Found Error-Anforderungen und die angeforderte URL aufgelistet.

  • 5 - Gastgeber *

Hosts verfügt über detailliertere Informationen zu den Hosts, die eine Verbindung zu Ihrem Webserver herstellen, z. B. die Anzahl der Verbindungen, ihre globalen IP-Adressen und einige der gleichen wiederholten Metriktypen.

Das erweiterte Modul kann hier noch mehr Informationen wie das Reverse-DNS-Lookup-Ergebnis eines Hosts und das Herkunftsland anzeigen, wenn das Argument "+ -a " aus einer früheren Version aktiviert ist. Eine Liste der Benutzeragenten kann angezeigt werden, indem Sie die gewünschte IP-Adresse auswählen und dann die Taste " ENTER +" drücken.

  • 6 - Betriebssysteme *

Hier wird das Betriebssystem des Hosts angezeigt, und die Betriebssystemnutzung wird nach Rang geordnet. Dies basiert im Gegensatz zu den meisten anderen Moduldaten auf eindeutigen Besuchen.

  • 7 - Browser *

Das Browser-Modul folgt demselben Konzept wie das letzte Modul, außer dass in diesem Fall der Browsertyp des Hosts, der zum Verbinden einer Sitzung verwendet wird, eine Rangfolge erhält. Dies basiert wiederum auf eindeutigen Besuchern und nicht auf Gesamtanforderungen insgesamt.

  • 8 - Referrer URLs *

Wenn der betreffende Host über eine andere Ressource auf die Site zugegriffen hat oder von einem anderen Host zu Ihnen weitergeleitet wurde, wird die URL, von der aus auf sie verwiesen wurde, hier in diesem Modul angegeben.

  • 9 - Verweisende Sites *

Dieses Modul ist fast identisch mit dem letzten (* Referrer URLs *); Der einzige Unterschied besteht darin, dass die allgemeine Standortadresse angezeigt wird und nicht der genaue Ausgangspunkt für eine Überweisung.

  • 10 - Schlüsselbegriffe *

Meldet in der Google-Suche, im Google-Cache und in der Google-Übersetzung verwendete Schlüsselwörter, die dazu geführt haben, dass Ihr Webserver einen Host verwaltet. Derzeit werden nur Google und keine anderen Suchmaschinen unterstützt.

  • 11 - Geo-Standort *

Dieses Modul enthält eine Zusammenfassung der geografischen Standorte, die anhand der IP-Adressen der besuchten Hosts ermittelt wurden. Wenn dies nicht festgestellt werden kann, wird es als "+ Ort unbekannt +" markiert.

  • 12 - HTTP-Statuscodes *

HTTP-Statuscodes enthalten Statistiken zu den Werten der Gesamtstatuscodes in HTTP-Anforderungen, angegeben als Menge und Prozentsatz.

(Optional) Weitere Verwendung von GoAccess

Wechseln Sie mit "+ cd " und " ~ " in das Ausgangsverzeichnis Ihres Benutzers, um mit diesen zusätzlichen Befehlen fortzufahren. Der sekundäre Befehl ` pwd +` gibt Ihr aktuelles Arbeitsverzeichnis aus, sodass Sie bestätigen können, dass Sie korrekt darauf umgestellt haben.

cd ~
pwd

HTML-Berichte

Sie können einen HTML-Bericht generieren, indem Sie die Standardausgabe von GoAccess in eine HTML-Datei mit einem beliebigen Namen umleiten.

In diesem Beispiel heißt die Datei "+ .html " und enthält alle (" -a +") Statistiken, die in der ausgewählten Protokolldatei verfügbar sind.

goaccess -f /var/log/apache2/access.log -a > .html

Die neu generierte "+ html" -Datei wird in unserem Benutzerverzeichnis "name" erstellt.

JSON-Berichte

Sie können einen Bericht vom Typ JSON erstellen, indem Sie dem Befehl die Argumente + -o + und + json + hinzufügen. Hier hat die Ausgabedatei die Erweiterung "+ .json +".

goaccess -f /var/log/apache2/access.log -a -o json > .json

CSV-Berichte

Gehen Sie zum Generieren einer CSV-Datei wie zuvor vor. Hängen Sie einfach das Argument "+ csv" an den Befehl an und ändern Sie die Dateierweiterung in "+ .csv"

goaccess -f /var/log/apache2/access.log -a -o csv > .csv

Ausführen komprimierter Dateien

Damit komprimierte Dateien über GoAccess ausgeführt werden, können Sie die Ausgabe des Befehls + zcat + an den Befehl + goaccess + weiterleiten. Der nächste Befehl zeigt * alle * komprimierten + .gz + Dateien, die eingelesen werden, ohne sie vorher manuell zu extrahieren.

zcat /var/log/apache2/access.log.*.gz | goaccess -a

Filtern nach Startdatum

Um nach einem bestimmten Startdatum zu filtern, können Sie die Struktur des nächsten Befehls verwenden. Dadurch wird sichergestellt, dass HTTP-Anforderungen vom 20. Januar 2015 bis zum Ende des Inhalts der Protokolldatei analysiert werden.

sed '//,$ p' /var/log/apache2/access.log | goaccess -a

Beachten Sie, dass dies nur funktioniert, wenn das von Ihnen eingegebene Datum tatsächlich in der übergebenen Protokolldatei enthalten ist.

Filtern nach Tagen

Sie können ein bestimmtes Datum auswählen und filtern, um den Verkehr an diesem Tag anzuzeigen. Diesmal verwenden wir dazu "+ grep +".

grep '' /var/log/apache2/access.log | goaccess -a

Hosts ausschließen

Schließen Sie mit diesem Befehl eine bestimmte IP-Adresse aus und ersetzen Sie "++" durch die gewünschte IP-Adresse.

goaccess -exclude-ip= -f /var/log/apache2/access.log -a

Remote-Verwendung

Wenn GoAccess auf einem Remotecomputer wie Ihrer lokalen Workstation anstelle von VPS installiert ist, ist es möglich, SSH-Verbindungen zu Ihrem VPS herzustellen und die Apache-Protokolldateien über piping aus der Ferne zu lesen.

ssh @ 'cat ' | goaccess -a

Fazit

Nachdem Sie dieses Handbuch ausgefüllt haben, sollten Sie wissen, wie Sie GoAccess installieren, seine Hauptfunktionen nutzen und in der Lage sein, verschiedene andere Funktionen zu verwenden, die GoAccess flexibler machen.

Hier ist eine vollständige Zusammenfassung dessen, was behandelt wurde:

  • Beziehen und Aktualisieren der erforderlichen Debian-Systempakete.

  • Installieren und Erstellen von GoAccess mit seinem Quellcode.

  • Ausführen von GoAccess mit Apache-Webserver-Protokolldateien.

  • Interaktion und Navigation über GoAccess in der Befehlszeile.

  • Grundlegendes zu Modulen im GoAccess-Dashboard.

  • Erstellen verschiedener Berichtstypen aus Apache-Webserverprotokollen mit redirection.

  • Piping anderer Befehlsausgaben in GoAccess.