Caddy, GoAccess y Docker
Ernesto Rico Schmidt
17 de abril de 2021

A principios de este año hice un cambio visible y uno invisible a simple vista a mis sitios. En el diseño dejé de usar Pure y decidí usar Tachyons. En el servidor que los impulsa reemplacé nginx con Caddy.

Estoy sumamente satisfecho con el experimento, pero tenía un problema con Caddy: Sus “registros estructurados” en JSON no eran compatibles con GoAccess, el programa que uso para hacer estadísticas en base a los registros del servidor Web.

Revisando las notas de lanzamiento me dí cuenta que GoAccess, en la versión 1.4.4 de enero de 2021, añadió CADDY a los formatos predefinidos.

En vista de que la versión actual en Ubuntu todavía no entiende el formato CADDY, y ya que no se actualizará la próxima semana con la versión 21.04, opté por explorar la imagen Docker de GoAccess.

GoAccess en Docker

La imagen Docker es pequeña (14.3 MB) y está disponible en cuestión de segundos:

$ docker pull allinurl/goaccess:latest

La manera más fácil de usar la imagen es aprovechar la re dirección de entrada y salida (< rico-schmidt.name.json > report.html):

$ docker run --rm -i -e LANG=es -e TZ="America/La_Paz" allinurl/goaccess -a \
-o html --log-format CADDY - < rico-schmidt.name.json > report.html

El análisis tarda aproximadamente 30 segundos para 429 MB de registros entre el primero y el 17 de abril.

Estadísticas del servidor

La documentación de la imagen Docker contiene detalles para la configuración personalizada para el análisis de registros basado en Docker.