Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Überwachung von Nginx- und Apache-Protokollen mit GoAccess

Log-Analysator
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Überwachen und analysieren Sie Webserver-Protokolle mit dem Open Source-Echtzeit-Protokollanalysator - GoAccess

Die Fehlerbehebung im Internet macht Spaß und kann frustrierend sein, wenn Sie nicht mit den richtigen Tools ausgestattet sind.

Wenn Sie stark frequentierte Websites unterstützen, müssen Sie häufig Webserver-Protokolle analysieren und überwachen, um die Leistung und Kapazität zu planen. Dies ist für Webingenieure unerlässlich.

Das manuelle Überprüfen der kleineren Protokollgröße ist in Ordnung. Wenn Sie jedoch über eine große Datei verfügen, macht es keinen Spaß, Millionen von Zeilen durchzugehen, um die Metriken zu finden.

Deshalb brauchen Sie Werkzeuge um den Administratorjob zu erleichtern und produktiver machen.

GoAccess ist ein Leichter Open-Source-Log-Analysator Dies unterstützt mehrere Protokollformate und kann mit einer der folgenden Methoden verwendet werden.

  • Nginx
  • Apache HTTP
  • AWS ELB, S3, CloudFront
  • Google Cloud-Speicher

What metrics can you analyze with GoAccess?

Fast alles, was Sie in den Protokollen erfassen. Um Ihnen eine Idee zu geben:

  • Es wird Zeit benötigt, um die Anfrage zu bearbeiten
  • Besucher-IP, DNS, Host
  • Browser- und Betriebssystemdetails des Besuchers
  • 404 nicht gefundene Details
  • Top Anfragen / Besucher
  • Bandbreite
  • Statische Dateien
  • Geo Location
  • Statuscode
  • und mehr ..

Suchen Sie nach diesen Metriken, die von Ihrer Site überwacht werden sollen?

Gut!

On which OS you can install?

GoAccess hat nur eine Abhängigkeit - ncurses. Wenn Sie installieren können, können Sie es auf jedem Betriebssystem verwenden.

Es ist im Distributionspaket erhältlich für:

  • Ubuntu
  • Debian
  • Fedora
  • CentOS
  • FreeBSD / OpenBSD
  • Slackware
  • Arch Linux
  • Gentoo
  • MacOS
  • Windows durch Cygwin

Sie können jedoch auch aus der Quelle erstellen oder mit Docker verwenden.

Wenn Sie Docker noch nicht kennenIch würde empfehlen, dies zu nehmen Docker Mastery Kurs.

Docker

Installing GoAccess on Ubuntu

  • Melden Sie sich mit dem Root-Privileg beim Ubuntu-Server an
  • Nutzen Sie den apt-get wie unten zu installieren
apt-get installiere goaccess

Easy.

Installing on CentOS

Melden Sie sich beim Server an und führen Sie ihn aus yumBefehl

yum installiere goaccess

Installing using Source on CentOS/Ubuntu

Lieben Sie es, aus der Quelle zu kompilieren?

Hier sind die Schritte.

  • Installieren Sie die folgenden Abhängigkeiten, wenn Sie verwenden CentOS
yum installiere gcc ncurses-devel glib2-devel geoip-devel tokyocabinet-devel
  • Wenn Sie verwenden Ubuntu
apt-get Installieren Sie libncursesw5-dev libgeoip-dev machen
  • Laden Sie das neueste Paket mit herunter wget
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
  • Extrahieren Sie die heruntergeladene Datei
gunzip –c goaccess-1.2.tar.gz | tar xvf -
  • Wechseln Sie in den neu erstellten Ordner, den Sie nach dem Extrahieren erhalten haben
cdgoaccess-1.2
  • Kompilieren Sie mit dem folgenden Befehl
./configure --enable-geoip = Legacy --enable-utf8 make make install

Gut erledigtSie haben GoAccess installiert und sind bereit, die Protokolle zu analysieren.

 

Verify Installation

Einmal installiert, einfach ausführen goaccess an der Eingabeaufforderung und es sollte die Verwendung wie unten drucken.

[root @ instance-2 goaccess-1.2] # goaccess 
GoAccess - 1.2
Verwendung: goaccess [Dateiname] [Optionen ...] [-c] [- M] [- H] [- q] [- d] [...]
Die folgenden Optionen können auch für den Befehl bereitgestellt werden:
Protokoll- und Datumsformatoptionen
  --date-format =      - Geben Sie das Protokolldatum an. zB% d /% b /% Y.
  --log-format =        - Geben Sie das Protokollformat an. Innere Anführungszeichen müssen sein
                                    entkommen, oder verwenden Sie einfache Anführungszeichen.
  --time-format =      - Geben Sie das Protokollzeitformat an. zB% H:% M:% S.
Benutzeroberflächenoptionen
  -c --config-dialog              - Eingabeaufforderung Protokoll / Datum / Uhrzeit Konfigurationsfenster.
  -i --hl-Header                  - Aktives Bedienfeld für Farbmarkierungen.
  -m --mit der Maus                 - Aktivieren Sie die Mausunterstützung im Haupt-Dashboard.
  --color =   - Geben Sie benutzerdefinierte Farben an. Weitere Informationen finden Sie in der Manpage
                                    Details und Optionen.
  --Farbschema = <1 | 2 | 3>          - Schemata: 1 => Grau, 2 => Grün, 3 => Monokai.
  --html-custom-css =    - Geben Sie im HTML-Bericht eine benutzerdefinierte CSS-Datei an.
  --html-custom-js =      - Geben Sie im HTML-Bericht eine benutzerdefinierte JS-Datei an.
  --html-prefs =         - Legen Sie die Standardeinstellungen für HTML-Berichte fest.
  --html-report-title =     - Legen Sie den Titel und die Kopfzeile der HTML-Berichtsseite fest.
  --json-hübsch-druck             - Formatieren Sie die JSON-Ausgabe mit Tabulatoren und Zeilenumbrüchen.
  --max-Artikel                     - Maximale Anzahl von Elementen, die pro Panel angezeigt werden sollen.
                                    Siehe Manpage für Grenzen.
  --keine Farbe                      - Deaktivieren Sie die Farbausgabe.
  --keine Spaltennamen               - Schreiben Sie keine Spaltennamen in die Termausgabe.
  --no-csv-Zusammenfassung                - Deaktivieren Sie Zusammenfassungsmetriken für die CSV-Ausgabe.
  --keine Fortschritte                   - Deaktivieren Sie die Fortschrittsmetriken.
  --no-tab-scroll                 - Deaktivieren Sie das Scrollen durch die Bedienfelder auf der Registerkarte.
  --no-html-last-aktualisiert          - HTML zuletzt aktualisiertes Feld ausblenden.
Serveroptionen
  --addr =                   - Geben Sie die IP-Adresse an, an die der Server gebunden werden soll.
  --dämonisieren                     - Als Daemon ausführen (wenn --real-time-html aktiviert ist).
  --fifo-in =                - Pfad zum Lesen der Named Pipe (FIFO).
  --fifo-out =               - Pfad zum Schreiben der Named Pipe (FIFO).
  --origin =                 - Stellen Sie sicher, dass Clients den angegebenen Ursprungsheader senden
                                    nach dem WebSocket-Handshake.
  --port =                   - Geben Sie den zu verwendenden Port an.
  - Echtzeit-HTML                - Aktivieren Sie die Echtzeit-HTML-Ausgabe.
  --ssl-cert =           - Pfad zum TLS / SSL-Zertifikat.
  --ssl-key =            - Pfad zum privaten TLS / SSL-Schlüssel.
  --ws-url =                  - URL, auf die der WebSocket-Server antwortet.
Dateioptionen
  -                               - Die zu analysierende Protokolldatei wird aus stdin gelesen.
  -f --log-file =        - Pfad zur Eingabeprotokolldatei.
  -l --debug-file =      - Senden Sie alle Debug-Meldungen an die angegebenen
                                    Datei.
  -p --config-file =     - Benutzerdefinierte Konfigurationsdatei.
  --invalid-request =   - Protokollieren Sie ungültige Anforderungen in der angegebenen Datei.
  --no-global-config              - Laden Sie keine globale Konfigurationsdatei.
Analyseoptionen
  -a - Agent-Liste                 - Aktivieren Sie eine Liste der Benutzeragenten nach Host.
  -d --mit Ausgangsauslöser       - Aktivieren Sie den IP-Resolver für die HTML | JSON-Ausgabe.
  -e --exclude-ip =            - Schließen Sie eine oder mehrere IPv4 / 6 aus. Ermöglicht IP
                                    Bereiche zB 192.168.0.1-192.168.0.10
  -H --http-protocol =     - HTTP-Anforderungsprotokoll setzen / deaktivieren, falls gefunden.
  -M --http-Methode =       - Set / unser HTTP-Anforderungsmethode, falls gefunden.
  -o --output = file.html | json | csv  - Geben Sie entweder eine HTML-, JSON- oder eine CSV-Datei aus.
  -q --no-query-string            - Ignorieren Sie die Abfragezeichenfolge der Anforderung. Entferne den
                                    Abfragezeichenfolge kann den Speicher erheblich verringern
                                    Verbrauch.
  -r --no-term-resolver           - Deaktivieren Sie den IP-Resolver am Terminalausgang.
  - 444-as-404                    - Behandeln Sie den nicht standardmäßigen Statuscode 444 als 404.
  ---4xx-bis-eindeutige-Anzahl           - Fügen Sie den eindeutigen Besuchern 4xx Client-Fehler hinzu
                                    Anzahl.
  --all-statische-Dateien              - Fügen Sie statische Dateien in eine Abfragezeichenfolge ein.
  - nur für Krabbler                 - Analysieren Sie nur Crawler und zeigen Sie sie an.
  --date-spec =           - Datumsspezifität. Mögliche Werte: `Datum`
                                    (Standard) oder `hr`.
  --double-decodieren                 - Dekodieren Sie doppelt codierte Werte.
  --enable-panel =          - Aktivieren Sie das Parsen / Anzeigen des angegebenen Bedienfelds.
  --hour-spec =            - Stundenspezifität. Mögliche Werte: `hr`
                                    (Standard) oder `min` (Zehntelminute).
  --ignore-crawler               - Crawler ignorieren.
  --ignore-panel =          - Ignorieren Sie das Parsen / Anzeigen des angegebenen Panels.
  --ignore-referer =       - Ignorieren Sie, dass ein Referer gezählt wird. Platzhalter
                                    sind erlaubt. dh * .bing.com
  --ignore-status =          - Ignorieren Sie das Parsen des angegebenen Statuscodes.
  --num-tests =            - Anzahl der zu testenden Zeilen. > = 0 (10 Standard)
  --process-and-exit              - Analysieren Sie das Protokoll und beenden Sie es, ohne Daten auszugeben.
  --real-os                       - Zeigen Sie echte Betriebssystemnamen an. zB Windows XP, Schnee
                                    Leopard.
  --sort-panel = PANEL, METRIC, ORDER - Sortierfeld beim ersten Laden. Beispielsweise:
                                    --sort-panel = BESUCHER, BY_HITS, ASC. Sehen
                                    Manpage für eine Liste von Panels / Feldern.
  --static-file =       - Statische Dateierweiterung hinzufügen. zB: .mp3.
                                    Bei Erweiterungen wird zwischen Groß- und Kleinschreibung unterschieden.
GeoIP-Optionen
  -g --std-geoip                  - Standard GeoIP Datenbank für weniger Speicher
                                   Verbrauch.
  --geoip-database =         - Geben Sie den Pfad zur GeoIP-Datenbankdatei an. dh
                                    GeoLiteCity.dat, GeoIPv6.dat ...
Andere Optionen
  -h - Hilfe                       - Diese Hilfe.
  -V --Version                    - Versionsinformationen anzeigen und beenden.
  -s --speicher                    - Aktuelle Speichermethode anzeigen. zB B +
                                    Baum, Hash.
  --dcf                           - Zeigen Sie den Pfad der Standardkonfiguration an
                                    Datei, wenn `-p` nicht verwendet wird.
Beispiele finden Sie, indem Sie "man goaccess" ausführen.
Weitere Informationen finden Sie unter: http://goaccess.io
GoAccess Copyright (C) 2009-2016 von Gerardo Orellana
[root @ instance-2 goaccess-1.2] # 

Analyzing Nginx & Apache with GoAccess

Eine der schnellsten Möglichkeiten zur Analyse von access.log ist die Verwendung von-fParameters.

Ex:

goaccess -f access.log

Oben weise ich an, die Datei access.log zu öffnen. Dies zeigt Ihnen das gesamte Dashboard und die folgenden 15 Abschnitte.

  • Einzigartige Besucher pro Tag
  • Angeforderte Dateien
  • Statische Anforderungen (Schriftarten, Bild, PDF usw.)
  • Nicht gefundene (404) Anfragen
  • IP- / Host-Details des Besuchers
  • Betriebssystem des Besuchers
  • Browser-Details
  • Zeitverteilung
  • Referrer
  • HTTP-Statuscode
  • Geografischer Standort

goaccess-nginx

Wenn die ausgewählte Datei in Echtzeit aktualisiert wird, werden Sie feststellen, dass die Metriken auf dem Terminal aktualisiert werden. Hier können Sie die zu analysierenden Metriken durchgehen.

Real-time Monitoring over HTTP(s)

Mit GoAccess können Sie die Ausgabe in eine HTML-Datei umleiten, die Sie als Echtzeitüberwachung verwenden können. Dies ist praktisch, wenn Sie sich nicht jedes Mal beim Server anmelden möchten, wenn Sie einige Metriken überprüfen müssen.

goaccess /var/log/nginx/access.log -o /var/www/geekflare.com/htdocs/real-time.html --log-format = COMBINED --real-time-html

Oben leite ich die Ausgabe in die Datei real-time.html um, die unter htdocs verfügbar ist. Da es sich um htdocs handelt, kann ich von https://geekflare.com/real-time.html auf diese Datei zugreifen, wann immer ich die Metriken sehen muss.

goaccess-Dashboard

Ein schönes Armaturenbrett!

Ich werde jedoch nicht empfehlen, dies in der Produktion so zu machen. Ich bin sicher, Sie möchten nicht, dass jemand Ihre Webserver-Protokolle liest, und Sie möchten möglicherweise die folgende Einschränkung anwenden.

  • Schützen Sie die Datei mit Benutzer und Passwort
  • Erlaube den Zugriff nur von deiner IP
  • Verwenden Sie eine andere URL mit benutzerdefiniertem Port und platzieren Sie diese hinter einer Firewall, damit nur zulässige IP-Adressen / Benutzer darauf zugreifen können

GoAccess sieht aus wie ein leistungsstarker Open-Source-Protokollanalysator. Es ist leicht und KOSTENLOS. Probieren Sie es aus.

Vielleicht interessiert Sie auch das Auschecken Cloud-basierter Log Analyzer.

Danke an unsere Sponsoren
Weitere großartige Lektüren zu Apache HTTP
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder