Caddy, GoAccess und Docker
Ernesto Rico Schmidt
17. April 2021

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.

Serverstatistik

Die Docker-Image-Dokumentation enthält Details für ein benutzerdefiniertes Setup für die Docker-basierte Log-analyse.