Ü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.
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 yum
Befehl
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-f
Parameters.
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
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.
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.