GNU/Linux >> LINUX-Kenntnisse >  >> Rocky Linux

So installieren Sie GoAccess Web Log Analyzer unter Rocky Linux 8

GoAccess ist ein leichtgewichtiger Open-Source-Protokollanalysator, der Protokolldateien verschiedener Formate lesen und analysieren kann, darunter Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, Caddy usw. Es ist in C-Sprache geschrieben und verwendet die ncurses-Bibliothek für seine Dashboard-Oberfläche, auf die über die Befehlszeile zugegriffen werden kann.

Es kann Berichte im HTML-, JSON- und CSV-Format generieren, die mit anderen geteilt werden können. Sie können sogar Echtzeit-HTML-Berichte erstellen, die über einen öffentlichen Link angezeigt werden können.

In diesem Tutorial erfahren Sie, wie Sie GoAccess Analyzer auf einem Rocky Linux-basierten Server installieren und ihn so konfigurieren, dass er Nginx-Protokolle liest und Echtzeitberichte bereitstellt.

Voraussetzungen

  1. Ein Server mit Rocky Linux 8.

  2. Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.

  3. Nginx wird auf dem Server ausgeführt, um auf Protokolle zuzugreifen.

  4. Stellen Sie sicher, dass alles aktualisiert ist.

    $ sudo dnf aktualisieren

Schritt 1 – Installieren Sie Abhängigkeiten für GoAccess

Die neueste Version von GoAccess v1.5.2 ist nicht im Standard-Repository verfügbar. Um die neueste Version von GoAccess zu installieren, erstellen wir sie aus der Quelle. Der erste Schritt besteht darin, die Abhängigkeiten herunterzuladen, die zum Erstellen des GoAccess-Pakets erforderlich sind.

$ sudo dnf install ncurses-devel libmaxminddb-devel openssl-devel $ sudo dnf groupinstall 'Development Tools'

Schritt 2 – GoAccess herunterladen und installieren

Laden Sie die neueste Version des GoAccess-Archivs herunter. Die neueste Version von GoAccess finden Sie auf der offiziellen Download-Seite.

$ wget https://tar.goaccess.io/goaccess-1.5.2.tar.gz

Extrahieren Sie die Dateien aus dem Archiv.

$ tar -xzvf goaccess-1.5.2.tar.gz

Konfigurieren und installieren Sie das Paket.

$ cd goaccess-1.5.2$ autoreconf -fi$ sudo ./configure --enable-utf8 --enable-geoip=mmdb --with-openssl$ sudo make$ sudo make install

Vergewissern Sie sich, dass GoAccess ausgeführt wird.

$ goaccess --versionGoAccess - 1.5.2.Weitere Einzelheiten finden Sie unter:https://goaccess.io/Copyright (C) 2009-2020 von Gerardo OrellanaBuild-Konfigurationsargumente:--enable-utf8 --enable-geoip=mmdb --with-openssl

Schritt 3 - GeoIP-Datenbank herunterladen

Sie können die GeoIP-Datenbank entweder von DB-IP oder Maxmind herunterladen. Wenn Sie von Maxmind herunterladen möchten, müssen Sie ein Konto erstellen und einen kostenlosen Lizenzschlüssel generieren. Das Herunterladen von DB-IP kann direkt erfolgen.

Laden Sie die Länder-ZIP-Datei von einer der oben genannten Quellen herunter. Extrahieren Sie sie nach dem Herunterladen und laden Sie die .mmdb hoch Datei auf dem Server in einen benutzerdefinierten Ordner wie /home/<user>/geoip .

Schritt 4 – GoAccess konfigurieren

GoAccess speichert seine Konfigurationsdatei unter /usr/local/etc/goaccess/goaccess.conf . Sie können den Speicherort der Datei auf Ihrem System mit dem folgenden Befehl überprüfen.

$ goaccess --dcf/usr/local/etc/goaccess/goaccess.conf

Öffnen Sie die Datei zum Bearbeiten.

$ sudo nano /usr/local/etc/goaccess/goaccess.conf

Die meisten Optionen sind auskommentiert. Sie können diese Optionen entweder über die Befehlszeile verwenden oder sie hier in der Datei festlegen. Um eine Option zu aktivieren, entfernen Sie das # Zeichen davor.

Lassen Sie uns zuerst das time-format aktivieren Möglichkeit. Wir werden Nginx-Dateien in unserem Tutorial parsen, also aktivieren Sie die Option für Apache/Nginx-Protokolle.

# Das folgende Zeitformat funktioniert mit jedem der folgenden # Apache/NGINX-Protokollformate. # Zeitformat %H:%M:%S

Als nächstes aktivieren Sie das Nginx date-format Option.

# Das folgende Datumsformat funktioniert mit jedem der folgenden # Apache/NGINX-Protokollformate. #date-format %d/%b/%Y

Als nächstes aktivieren Sie das log-format Möglichkeit. In unserem Tutorial verwenden wir den combined log-Format, das von Nginx üblicherweise verwendet wird.

Log-Format KOMBINIERT

Wenn Ihre Protokolldateien das Feld Virtueller Host enthalten, aktivieren Sie stattdessen die folgende Option.

Protokollformat VCOMBINED

Angenommen, Sie möchten mehr Kontrolle über das Protokollformat. In diesem Fall können Sie stattdessen die folgende Zeile aktivieren (je nachdem, auf welches Protokoll Sie zugreifen) und je nach Bedarf Parameter hinzufügen oder entfernen.

Protokollformat %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

Um das GeoIP-Modul zu aktivieren, aktivieren Sie die folgende Option, indem Sie den Pfad zur GeoIP-Datenbank eingeben.

# Für die GeoIP2-Länderdatenbank:# GeoLite2-Country.mmdb.gz herunterladen# gunzip GeoLite2-Country.mmdb.gz#geoip-database /home/geoip/dbip-country-lite-2021-10.mmdb 

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.

Schritt 5 – GoAccess ausführen

Wenn Sie GoAccess ausführen möchten, müssen Sie normalerweise den folgenden Befehl verwenden.

$ sudo /usr/local/bin/goaccess /var/log/nginx/access.log

Wir müssen sudo verwenden, da normale Benutzer die Protokolldateien nicht öffnen können. Außerdem müssen Sie den vollständigen Pfad für die ausführbare Datei mit dem sudo-Befehl verwenden, da der sudo-Befehl keine Anwendungen in /usr/local/bin erkennt Verzeichnis. Sie können die Einschränkung jedoch umgehen, indem Sie einen Symlink erstellen.

Führen Sie dazu den folgenden Befehl aus.

$ sudo ln -s /usr/local/bin/goaccess /usr/bin/goaccess

Jetzt können Sie GoAccess direkt ausführen.

$ sudo goaccess /var/log/nginx/access.log

Die Nginx-Protokolldateien zeichnen den gesamten eingehenden HTTP-Verkehr auf. Wenn Ihr Server schon lange läuft, sehen Sie mehrere Zugriffsprotokolle mit den älteren Protokollen in komprimierter .gz Format. Die älteren Protokolldateien werden als Ergebnis der Protokollrotation generiert.

Sobald Sie den Befehl ausführen, werden Sie mit dem folgenden Dashboard begrüßt.

GoAccess bietet Ihnen mehrere Tastenkombinationen zum Navigieren im Dashboard.

  • TAB um sich vorwärts durch die verfügbaren Module zu bewegen und SHIFT+TAB rückwärts bewegen.
  • F5 um das Dashboard zu aktualisieren.
  • g um zum oberen Rand des Dashboard-Bildschirms zu gelangen und G nach unten verschieben.
  • o oder ENTER um das ausgewählte Modul zu erweitern.
  • j und k um innerhalb des aktiven Moduls nach unten und oben zu scrollen.
  • s um die Sortieroptionen für das aktive Modul anzuzeigen.
  • / um über alle Module hinweg zu suchen und n um zum nächsten Spiel zu wechseln.
  • 0-9 und SHIFT+0 um das jeweilige nummerierte Modul schnell zu aktivieren.
  • ? um den Schnellhilfedialog anzuzeigen.
  • q um das Programm zu beenden.

Lassen Sie uns kurz alle Panels durchgehen.

  1. Einzelne Besucher pro Tag - Dieses Panel ist selbsterklärend. Es listet eindeutige Besucher, Treffer und kumulierte Bandbreite für jedes Datum auf. Es enthält standardmäßig auch Webcrawler und Spider.

  2. Angeforderte Dateien (URLs) - Dieses Panel liefert die Statistiken über die am häufigsten angeforderten nicht statischen Dateien auf Ihrem Server.

  3. Statische Anfragen - Es ähnelt dem obigen Panel, außer dass es statische Dateien wie Bilder, CSS, JavaScript usw. verarbeitet.

  4. Nicht gefundene URLs (404s) - Dieses Panel protokolliert alle Anfragen zu Dateien und Pfaden, die nicht auf Ihrem Server gefunden wurden.

  5. Hostnamen und IPs der Besucher - Dieses Panel gibt weitere Informationen über die Besucher Ihrer Website. Sie können o drücken , um das Panel zu erweitern, um detaillierte Informationen wie Herkunftsland, Stadt und Reverse-DNS zu erhalten.

  6. Betriebssysteme - Dieses Panel zeigt verschiedene Betriebssysteme an, die von den Besuchern verwendet werden.

  7. Browser - Dieses Panel zeigt die verschiedenen Browser, die von den Besuchern verwendet werden.

  8. Zeitverteilung - Dieses Panel gibt einen stündlichen Bericht über die Anzahl der Zugriffe, eindeutigen Besucher und verbrauchten Bandbreite.

  9. Virtuelle Hosts - Dieses Fenster zeigt die aus der Protokolldatei geparsten virtuellen Hosts an. Es wird nur angezeigt, wenn Sie VCOMBINED verwenden log-Format in der obigen Konfigurationsdatei oder wenn %v ist Teil der Protokollformatkonfiguration.

  10. Referrer-URLs - Dies listet die URLs auf, die Besucher auf Ihren Server verweisen. Dieses Bedienfeld ist standardmäßig deaktiviert. Um es zu aktivieren, kommentieren Sie die folgende Zeile in der Konfigurationsdatei aus, indem Sie # hinzufügen davor.

    #ignore-panel REFERRERS
  11. Verweisende Websites - Dieses Panel zeigt die IP-Adressen der verweisenden Hosts an.

  12. Schlüsselphrasen - Dieses Feld zeigt die in der Google-Suche, im Google-Cache oder in Google Übersetzer verwendeten Schlüsselwörter an, die zu Ihrer Website führen. Dieses Bedienfeld ist ebenfalls standardmäßig deaktiviert. Aktivieren Sie es, indem Sie die folgende Zeile in der Konfigurationsdatei auskommentieren.

    #ignore-panel KEYPHRASES
  13. HTTP-Statuscodes - Dieses Panel zeigt die Statistiken für HTTP-Statuscodes, die von Ihrem Server zurückgegeben werden, wenn er auf eine Anfrage antwortet.

  14. Remote-Benutzer (HTTP-Authentifizierung) - Dieses Panel zeigt die Benutzer-ID der Person, die auf ein Dokument auf Ihrem Server zugreift, geschützt durch HTTP-Authentifizierung. Dieses Panel funktioniert nur, wenn %e ist Teil der Protokollformatkonfiguration.

  15. Cache-Status - Dieses Panel bestimmt, ob eine Anfrage zwischengespeichert und von dort aus bedient wird. Dieses Panel funktioniert nur, wenn %c ist Teil der Protokollformatkonfiguration.

  16. Geografischer Standort - Dieses Panel bietet eine Liste der geografischen Standorte der Besucher, die auf Ihre Website zugreifen. Es wird nur angezeigt, wenn Sie es heruntergeladen und in der Konfigurationsdatei hinzugefügt haben.

Schritt 6 – Führen Sie GoAccess als nicht privilegiert aus

Als gute Sicherheitspraxis gilt:Je weniger Code als Root funktioniert, desto besser. Um GoAccess ohne Root ausführen zu können, benötigt es Berechtigungen zum Lesen von Protokolldateien.

Die Server-Logfiles sind in der Regel Bestandteil des adm Gruppe. Sie können dies mit dem folgenden Befehl überprüfen.

$ ls -l /var/log/nginxtotal 68-rw-r----- 1 nginx adm 30547 10. Okt. 12:47 access.log-rw-r----- 1 nginx adm 35063 10. Okt 12:47 error.log

Wie Sie sehen können, müssen Sie kein Root-Benutzer sein, um die Protokolldateien zu öffnen. Jeder Benutzer, der zu adm gehört Gruppe kann die Dateien öffnen.

Der einfachste Weg, GoAccess ohne Root auszuführen, besteht darin, den aktuell angemeldeten Benutzer zum adm hinzuzufügen Gruppe. Auf diese Weise können Sie GoAccess unter diesem Benutzer ohne sudo ausführen.

Führen Sie den folgenden Befehl aus, um den aktuellen Benutzer zu adm hinzuzufügen Gruppe.

$ sudo usermod -aG adm $USER 

Melden Sie sich jetzt ab und wieder an, um die Änderung zu übernehmen. Oder Sie können den folgenden Befehl ausführen, ohne sich abmelden zu müssen, um die Änderung zu implementieren.

$su $USER

Sie sollten GoAccess direkt ausführen können, ohne sudo zu benötigen.

$ goaccess /var/log/nginx/access.log

Schritt 7 – Generieren Sie HTML-Berichte

Mit GoAccess können Sie HTML-Berichte generieren, die Sie online bereitstellen können. Verwenden Sie den folgenden Befehl, um einen HTML-Bericht zu generieren.

$ goaccess /var/log/nginx/access.log -o stats.html

Sie können die Datei entweder für sich selbst auf Ihren lokalen PC oder in Ihren Website-Ordner herunterladen, um sie öffentlich bereitzustellen.

Mit GoAccess können Sie sogar einen Echtzeit-HTML-Bericht generieren. Aber zuerst müssen Sie den 7890-Port öffnen, damit GoAccess Websocket ausgeführt werden kann. Öffnen Sie den Port mit dem folgenden Befehl.

$ sudo firewall-cmd --permanent --add-port=7890/tcp

Laden Sie die Firewall neu, um die Änderung zu übernehmen.

$ sudo firewall-cmd --reload

Führen Sie nun den folgenden Befehl aus, um einen Echtzeit-HTML-Bericht zu generieren.

$ goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/livereport.html --real-time-html

Dadurch würde am angegebenen Ort ein Echtzeitbericht generiert. Der obige Befehl lässt GoAccess im Vordergrund laufen, während ein WebSocket auf Verbindungen wartet.

Es gibt eine kleine Einschränkung beim Ausführen des obigen Befehls. Der obige Befehl funktioniert, wenn GoAccess Benutzerberechtigungen für /usr/share/nginx/html hat Verzeichnis. Da wir GoAccess unter dem derzeit angemeldeten Benutzer ausführen, müssen Sie diesem Benutzer Berechtigungen für /usr/share/html erteilen Verzeichnis. Wenn Sie aus irgendeinem Grund nicht warten können, müssen Sie GoAccess mit sudo ausführen.

$ sudo goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/livereport.html --real-time-html

Wenn Sie GoAccess im Hintergrund ausführen möchten, können Sie es stattdessen als Daemon ausführen, indem Sie den folgenden Befehl verwenden.

$ goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/livereport.html --real-time-html --daemonizeDaemonized GoAccess:78315

Um den GoAccess-Daemon zu stoppen, beenden Sie den Prozess mit dem folgenden Befehl.

$ sudo kill -9 78315

Hier verwenden wir die Prozess-ID, die wir in unserem früheren Befehl erhalten haben. Wenn Sie sich nicht an die Prozess-ID erinnern, können Sie den Prozess auch mit dem folgenden Befehl beenden.

$ sudo kill -9 `pidof goaccess`

Beachten Sie, dass wir in unserem Befehl das Backquote (`) verwenden. Die Verwendung von regulären Anführungszeichen wird den Befehl fehlschlagen.

Schlussfolgerung

Damit ist unser Tutorial zum Installieren und Ausführen von GoAccess Log Analyzer auf einem Rocky Linux 8-Server abgeschlossen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.


Rocky Linux
  1. So installieren Sie GoAccess Web Log Analyzer unter Ubuntu 20.04

  2. So installieren Sie Python 3.9 auf Rocky Linux 8

  3. So installieren Sie Rocky Linux 8.4

  4. So installieren Sie GoAccess Web Log Analyzer unter Ubuntu 20.04

  5. So installieren Sie Redis unter Rocky Linux 8

So installieren Sie PHP 7.4 auf Rocky Linux 8

So installieren Sie Python 3.9 unter Rocky Linux

So installieren Sie PHP 8 auf Rocky Linux 8

So installieren Sie Nginx unter Rocky Linux 8

So installieren Sie Node.js unter Rocky Linux 8

So installieren Sie Rust unter Rocky Linux 8