Goaccess: Unterschied zwischen den Versionen
Opa00 (Diskussion | Beiträge) K (kleine Anpassung des log verzeichnisses) |
Opa00 (Diskussion | Beiträge) (bessere geolocation und ip Anonymisierung) |
||
Zeile 17: | Zeile 17: | ||
~$ cd goaccess-1.7/ | ~$ cd goaccess-1.7/ | ||
Eine Systemweite Installation wird mangels Berechtigung nicht funktionieren. Damit configure direkt unseren Pfad anlegt, befehlen wir das Installationsdirectory $HOME als prefix | Eine Systemweite Installation wird mangels Berechtigung nicht funktionieren. Damit configure direkt unseren Pfad anlegt, befehlen wir das Installationsdirectory $HOME als prefix | ||
~/goaccess-1.7$ ./configure --enable-utf8 --enable-geoip= | ~/goaccess-1.7$ ./configure --enable-utf8 --enable-geoip=legacy --prefix=$HOME/usr | ||
~/goaccess-1.7$ make | ~/goaccess-1.7$ make | ||
~/goaccess-1.7# make install | ~/goaccess-1.7# make install | ||
Zeile 31: | Zeile 31: | ||
Build configure arguments: | Build configure arguments: | ||
--enable-utf8 | --enable-utf8 | ||
--enable-geoip= | --enable-geoip=legacy | ||
==Anwendung== | ==Anwendung== | ||
Zeile 50: | Zeile 50: | ||
~$ zcat ... | goaccess -o webstat.html --log-format=COMBINED - | ~$ zcat ... | goaccess -o webstat.html --log-format=COMBINED - | ||
legt eine Datei webstat.html im aktuellen Ordner ab, diese kann dann zum Beispiel heruntergeladen werden, oder in einer Domain erreichbar gemacht werden. '''Empfehlung:''' Datei per scp heruntergeladen, auf dem eigenen, geschützten Rechner angeschaut, und schnell vernichtet. | legt eine Datei webstat.html im aktuellen Ordner ab, diese kann dann zum Beispiel heruntergeladen werden, oder in einer Domain erreichbar gemacht werden. '''Empfehlung:''' Datei per scp heruntergeladen, auf dem eigenen, geschützten Rechner angeschaut, und schnell vernichtet. | ||
== Finetuning == | |||
=== Anonymisierte IPs === | |||
Um nur anonymisierte IPs anzeigen zu lassen kann das zusätzliche Flag --anonymize-ip verwendet werden | |||
~$ zcat ... | goaccess ... --anonymize-ip - | |||
In der Doku ist beschrieben wie die IP Adresse noch gröber anonymisiert werden kann. | |||
=== Aktuellere Geo Location === | |||
Um die aktuellere Version der Geolocations zu verwenden muss bei | |||
./configure ... --enable-geoip=mmdb ... | |||
statt legacy verwendet werden. Dafür gibt es eine kostenlose [https://db-ip.com/db/download/ip-to-country-lite|Länder] oder [https://db-ip.com/db/download/ip-to-city-lite|Städte] lite-Version unter CC BY 4.0. Falls diese nicht genau genug sind, gibt es auch kommerzielle Alternativen vom selben Anbieter. | |||
Die Datenbank sollte im mmdb format heruntergeladen werden. Der direkte Downloadlink kann von oben direkt kopiert werden. Der Download Befehl auf der Konsole könnte bspw so aussehen (Datum und Version beachten! ggf. Link selbst einfügen). Zum heutigen Stand hatte die lite-cities Datenbank eine Größe von rund 100 MB. | |||
wget https://download.db-ip.com/free/dbip-city-lite-2023-02.mmdb.gz | |||
gzip -d dbip-city-lite-2023-02.mmdb.gz | |||
Beim ausführen von goaccess muss dann auch immer angegeben werden welche IP Datenbank verwendet werden soll. Dies geht mit folgendem zusätzlichen Flag (ggf. Pfad der db anpassen) | |||
~$ zcat ... | goaccess ... --geoip-database=dbip-city-lite-2023-02.mmdb - | |||
=== Automatisierung === | |||
tbc | |||
== Warnung: Datenschutz == | == Warnung: Datenschutz == | ||
Man beachte, dass die Auswertungen Datenschutzrelevante Inhalte wie die IP Adresse und die aufgerufenen Pfade enthalten | Man beachte, dass die Auswertungen Datenschutzrelevante Inhalte wie die IP Adresse und die aufgerufenen Pfade enthalten daher kann es nicht ausreichen nur die IPs zu anonymisieren. Bei einer Nextcloud Instanz beinhalten die Pfade z.B. häufig auch den Username und somit ggf. den Klarnamen. Entsprechend sollte diese Auswertung nicht öffentlich (ohne Passwortschutz) zugänglich gemacht werden. Siehe dazu [[.htaccess#Passwortschutz_f.C3.BCr_Dateien|Passwortschutz mit htaccess]]. | ||
[[Kategorie:Traffic]] | [[Kategorie:Traffic]] |
Version vom 16. Februar 2023, 03:17 Uhr
Um den Traffic des Pakets beziehungweise die Einträge der Logdateien im grafischen Blick zu halten, falls das Vorgehen im gerade wenn unerwartet eine Mail mit erhöhtem Datenvolumen kommt (im terminal oder als webpage) bietet sich das tool goaccess an (https://goaccess.io/download). Es ist ein sehr schlankes tool was gerade mal 690kB im Download des tar.gz wiegt (Version 1.7)
Installation
Die Installation ist erst einmal sehr einfach, daher kann es fast so installiert werden wie auf goaccess.io/download beschrieben: eingeloggt als Paketadmin z.B. per ssh xyz00 Da wir als Paketadmin keine Programme für alle installieren kann ein lokales Directory für die Installation des Programms (und ähnlicher angelegt werden: z.B. /home/pacs/xyz00/usr ~$mkdir usr um dann automatisch dorthin auch ein /bin Ordner anzulegen (wird durch configure danach gemacht) und auch den PATH anpassen, damit Programme hier in bin direkt ausgeführt werden.
~$ echo 'export PATH="$HOME/usr/bin:$PATH"' >>.bashrc
leider wird .bashrc nicht immer gelesen wenn wir mit ssh einloggen, wir müssen es in .bash_profile festlegen:
~$ echo '-f ~/.bashrc && . ~/.bashrc' >> ~/.bash_profile
nun sind wir bereit für die Installation:
~$ wget https://tar.goaccess.io/goaccess-1.7.tar.gz ~$ tar -xzvf goaccess-1.7.tar.gz ~$ cd goaccess-1.7/
Eine Systemweite Installation wird mangels Berechtigung nicht funktionieren. Damit configure direkt unseren Pfad anlegt, befehlen wir das Installationsdirectory $HOME als prefix
~/goaccess-1.7$ ./configure --enable-utf8 --enable-geoip=legacy --prefix=$HOME/usr ~/goaccess-1.7$ make ~/goaccess-1.7# make install
Nun liegt $HOME//usr/bin/goaccess in unserem PATH an erster Stelle ein Aufruf von ~$ goaccess --version sollte das zeigen
~$ goaccess --v GoAccess - 1.7. For more details visit: https://goaccess.io/ Copyright (C) 2009-2022 by Gerardo Orellana Build configure arguments: --enable-utf8 --enable-geoip=legacy
Anwendung
Dann, nach der Installation beginnt der hostsharingspezifische Teil, denn das file web.log, welches alle aktuellen logs der letzten zwei Tage beinhaltet beginnt nicht mit Datum und Uhrzeit, sondern mit den Domainnamen, was für goaccess zu Verwirrung führt.
Pipe mit zcat
Am leichtesten ist die Nutzung einer Pipe für die Prozessierung der gzip2 gezippten logfiles die alle nach dem Schema: web-subdomain.example.com-YYYYMMDD-hhmm.log.gz im Ordner $HOME/var liegen. Eine Auswertung des Weblogs von example.com z.B. vom 14.02.2023 liegt unter /home/pacs/xyz00/var/web-example.com-20230215-0139.log.gz vor Die Auswertung muss also entzippt werden, das geht on-the-fly mit zcat
~$ zcat /home/pacs/xyz00/var/web-example.com-20230215-0139.log.gz
Wildcards
zcat kann sehr gut mit Wildcards umgehen, der Aufruf
~$ zcat ~/var/web*.log.gz | goaccess -o webstat.html --log-format=COMBINED -
zum Beispiel fasst alle logfiles aller Domains und aller Tage zusammen. Es geht auch nur eine Domain: "var/web-example.com*.log.gz" oder nur den Januar 2023: "var/web*202301*log.gz" (es sollte beachtet werden, dass natürlich immer die Datei, die dann am Tag früh morgens (bei mir ist das zwischen 01:38h und 01:40h) erstellt wird natürlich für den vorherigen Tag ist. Das heißt in der 20230101 ist vor allem der 31.12. geloggt
Auswertung mit goaccess
~$ zcat ... | goaccess -o webstat.html --log-format=COMBINED -
legt eine Datei webstat.html im aktuellen Ordner ab, diese kann dann zum Beispiel heruntergeladen werden, oder in einer Domain erreichbar gemacht werden. Empfehlung: Datei per scp heruntergeladen, auf dem eigenen, geschützten Rechner angeschaut, und schnell vernichtet.
Finetuning
Anonymisierte IPs
Um nur anonymisierte IPs anzeigen zu lassen kann das zusätzliche Flag --anonymize-ip verwendet werden
~$ zcat ... | goaccess ... --anonymize-ip -
In der Doku ist beschrieben wie die IP Adresse noch gröber anonymisiert werden kann.
Aktuellere Geo Location
Um die aktuellere Version der Geolocations zu verwenden muss bei
./configure ... --enable-geoip=mmdb ...
statt legacy verwendet werden. Dafür gibt es eine kostenlose [1] oder [2] lite-Version unter CC BY 4.0. Falls diese nicht genau genug sind, gibt es auch kommerzielle Alternativen vom selben Anbieter.
Die Datenbank sollte im mmdb format heruntergeladen werden. Der direkte Downloadlink kann von oben direkt kopiert werden. Der Download Befehl auf der Konsole könnte bspw so aussehen (Datum und Version beachten! ggf. Link selbst einfügen). Zum heutigen Stand hatte die lite-cities Datenbank eine Größe von rund 100 MB.
wget https://download.db-ip.com/free/dbip-city-lite-2023-02.mmdb.gz gzip -d dbip-city-lite-2023-02.mmdb.gz
Beim ausführen von goaccess muss dann auch immer angegeben werden welche IP Datenbank verwendet werden soll. Dies geht mit folgendem zusätzlichen Flag (ggf. Pfad der db anpassen)
~$ zcat ... | goaccess ... --geoip-database=dbip-city-lite-2023-02.mmdb -
Automatisierung
tbc
Warnung: Datenschutz
Man beachte, dass die Auswertungen Datenschutzrelevante Inhalte wie die IP Adresse und die aufgerufenen Pfade enthalten daher kann es nicht ausreichen nur die IPs zu anonymisieren. Bei einer Nextcloud Instanz beinhalten die Pfade z.B. häufig auch den Username und somit ggf. den Klarnamen. Entsprechend sollte diese Auswertung nicht öffentlich (ohne Passwortschutz) zugänglich gemacht werden. Siehe dazu Passwortschutz mit htaccess.