Caddy, GoAccess und Docker
Anfang dieses Jahres habe ich eine sichtbare und eine kaum sichtbare Änderung an meinen Websites vorgenommen. Im Design habe ich mit Pure aufgehört und mich für Tachyons entschieden. Auf dem Webserver, habe ich nginx durch Caddy ersetzt.
Ich bin sehr zufrieden mit dem Experiment, aber ich hatte ein Problem mit Caddy: Die “strukturierten Logs” in JSON waren nicht kompatibel mit GoAccess, dem Programm, mit dem ich Statistiken basierend auf die Logs vom Webserver erstelle.
Beim Überprüfen der Versionshinweise wurde
mir klar, dass GoAccess schon in der Version 1.4.4 im Januar 2021, den
vordefinierten Formaten CADDY
hinzugefügt hat.
Da die aktuelle Version unter Ubuntu 20.10 das CADDY
-Format immer noch nicht
versteht und es nächste Woche mit der Version 21.04 nicht aktualisiert wird,
habe ich mich für das GoAccess
Docker-Image
entschieden.
GoAccess in Docker #
Das Docker-Image ist klein (14,3 MB) und in Sekunden verfügbar:
$ docker pull allinurl/goaccess:latest
Der einfachste Weg, das Image zu verwenden, besteht darin, die Eingabe und die
Ausgabe umzuleiten (< denklab.org.json > report.html
):
$ docker run --rm -i -e LANG=de -e TZ="America/La_Paz" \
allinurl/goaccess -a -o html --log-format CADDY - \
< denklab.org.json > report.html
Die Analyse vom 3.5 MB Logs zwischen dem 1. und 17. April dauert weniger als eine Sekunde.
Die Docker-Image-Dokumentation enthält Details für ein benutzerdefiniertes Setup für die Docker-basierte Log-analyse.