2025–01–12
sudo dnf install -y 'dnf-command(copr)'
sudo dnf copr enable @caddy/caddy
sudo dnf install caddy -y
GoAccess es un analizador de registros web en tiempo real de código abierto y un visor interactivo que se ejecuta en un terminal en sistemas *nix o a través de su navegador.
$ sudo dnf config-manager --set-enabled crb
$ sudo dnf install epel-release
$ sudo dnf update
$ sudo dnf install goaccess
$ sudo caddy add-package github.com/caddyserver/transform-encoder
Añadir en /etc/caddy/Caddyfile
# Use logging
(logging) {
log {
output file /var/log/caddy/access.log
format transform `{request>remote_ip} - {user_id} [{ts}] "{request>method} {request>uri} {request>proto}" {status} {size} "{request>headers>Referer>[0]}" "{request>headers>User-Agent>[0]}"` {
time_format "02/Jan/2006:15:04:05 -0700"
}
}
Yo he decido usar el modo “combinado” Apache Combined Log Format.
$ sudo goaccess /var/log/caddy/access.log --log-format=COMBINED
Podemos crear un subdominio para acceder desde el navegador .
Ejemplo Caddyfile:
logs.[domainname] {
import logging
tls [address]@[domainname]
encode gzip zstd
file_server
root * /var/www/logs.[domainname]
}
Creamos systemd service para goaccess:
$ sudo systemctl edit --full --force goaccess.service
Añadimos las seguientes lineas:
[Unit]
Description=GoAccess Live Log Analyzer
After=caddy.service
[Service]
Type=exec
ExecStart=/usr/bin/goaccess /var/log/caddy/access.log -o /var/www/logs.[domainame]/index.html --log-format=COMBINED --html-prefs='{"theme":"darkGray"}'
RestartSec=300
Restart=always
[Install]
WantedBy=multi-user.target
Iniciar el servicio:
$ sudo systemctl start goaccess
Visitar la pagina desde el navegador.