Mist, jetzt habe ich auch noch Streamlit gefunden. Jetzt geht mir langsam die Zeit aus...
GoAccess - Visual Web Log Analyzer
-
Es gibt ja einige Tools um die Logfiles von Webseiten auszulesen. Mir fallen dazu spontan noch folgende ein. Awstats, Piwik oder wie es mittlerweile heißt Matomo. Das führende dürfte Google Analytics sein. Jetzt nehmen wir mal an, wir möchten Google loswerden und machen das selber. Für einen Überblick dürften alle diese Tools reichen. Beim Umsehen bin ich über GoAccess gestolpert.
Beim durchlesen der Dokumentation kam ich zu dem Ergebnis, das sieht gut aus, das probieren wir mal Also fing ich mal an ein wenig damit zu spielen. Das erste was auffiel, unter Debian reichte ein
apt install goaccess
Das freut den Admin Mal schnell irgendwo her ein access.log kopiert und getestet. Sieht gut aus und sollte für mich völlig ausreichend sein.
Auf der Webseite findet man haufenweise Beispiele. Mit folgendem Beispiel konnte ich mal testen.
goaccess access.log -o /usr/share/nginx/html/site/report.html --real-time-html
Danach konnte man sich das mit
http://192.168.3.11/report.html
anschauen. Eine Live Demo findet man hier.
Dann kam die Überlegung, wie kann ich das mal ein wenig testen? Auf dem Server sollte es nicht drauf. Also kam es in eine VM bei mir zu Hause.
Ich brauchte also das access.log vom Server und dann den GoAccess-Dienst.
Dienst zum Abholen des Logs
#!/bin/bash scp ssh root@DOMAIN:/var/log/nginx/access.log /root
Nicht vergessen
chmod +x fetch.sh
Crontab
# m h dom mon dow command * * * * * /root/fetch.sh
Zum Testen mal jede Minute. Somit habe ich das Log jede Minute aktualisiert auf dem Server liegen.
GoAccess systemd
Für den Start von GoAccess lege ich einen SystemD Dienst an.
/etc/systemd/system/goaccess.service
[Unit] Description=Goaccess Start After=network.target [Service] Type=oneshot ExecStart=/root/goaccess RemainAfterExit=true StandardOutput=journal [Install] WantedBy=multi-user.target
Dienst aktivieren
systemctl enable goaccess.service
GoAccess Script
Es fehlt noch das Script in /root/goaccess
#!/bin/bash goaccess /root/access.log -o /var/www/html/report.html --config-file=/etc/goaccess/goaccess.conf --log-format=COMBINED --ignore-crawlers --restore --persist --db-path "/var/lib/goaccess-db" --real-time-html --daemonize
Auch die Datei braucht ein X
chmod +x goaccess
Danach die Kiste durchstarten.
root@:~# pstree systemd─┬─agetty ├─cron ├─dbus-daemon ├─dhclient───3*[{dhclient}] ├─goaccess───2*[{goaccess}] ├─nginx───4*[nginx] ├─rsyslogd───3*[{rsyslogd}] ├─sshd───sshd───sshd───bash───su───bash───pstree ├─systemd───(sd-pam) ├─systemd-journal ├─systemd-logind ├─systemd-timesyn───{systemd-timesyn} └─systemd-udevd
Ok läuft.
Jetzt schau ich mal, ob mir das gefällt und wenn ja, dann bleibt es
-