GoAccess es un programa analizador de registros del servidor web interactivo y en tiempo real que analiza y visualiza rápidamente los registros del servidor web. Es de código abierto y se ejecuta como una línea de comandos en los sistemas operativos Unix/Linux. Proporciona un breve y beneficioso informe de estadísticas HTTP (servidor web) para los administradores de Linux sobre la marcha. También se encarga de los formatos de registro de los servidores web Apache y Ngnix.
GoAccess analiza los formatos de registro del servidor web en las opciones preferidas, incluyendo CLF (Common Log Format), formato W3C (IIS), y hosts virtuales de Apache, y luego genera una salida de los datos a la terminal.
Características
GoAccess analiza el archivo de registro web especificado y envía los datos al terminal X. Las características incluyen:
- Tiempo real: Todos los paneles y métricas se actualizan cada 200 ms en la salida del terminal y cada segundo en la salida HTML.
- Mínima configuración necesaria: Sólo tienes que ejecutarlo contra tu archivo de registro de acceso, elegir el formato de registro y dejar que GoAccess analice el registro de acceso y te muestre las estadísticas.
- Seguimiento del tiempo de respuesta de la aplicación: Registra el tiempo que se tarda en servir la solicitud. Extremadamente útil si quieres rastrear las páginas que están ralentizando tu sitio.
- Casi todos los formatos de registro web: GoAccess permite cualquier cadena de formato de registro personalizado. Las opciones predefinidas incluyen Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, etc.
- Sólo una dependencia: GoAccess está escrito en C. Para ejecutarlo, sólo necesitas ncurses como dependencia. Eso es todo. Incluso cuenta con su propio servidor Web Socket – https://gwsocket.io/.
- Visitantes: Determina la cantidad de visitas, visitantes, ancho de banda y métricas de las solicitudes más lentas por hora o fecha.
- Métricas por Host Virtual: ¿Tiene varios hosts virtuales (bloques de servidores)? Cuenta con un panel que muestra qué host virtual está consumiendo la mayor parte de los recursos del servidor web.
- Esquema de colores personalizable: Adapta GoAccess a tus propios gustos/esquemas de color. Ya sea a través del terminal, o simplemente aplicando la hoja de estilos en la salida HTML.
- Soporte para grandes conjuntos de datos: GoAccess tiene la capacidad de analizar grandes registros gracias a sus tablas hash optimizadas en memoria.
- Soporte para Docker: Posibilidad de construir la imagen Docker de GoAccess desde el upstream.
¿Cómo se instala GoAccess en Linux?
Para instalar la última versión estable es necesario descargarla y compilarla manualmente a partir del código fuente en los sistemas Linux, como se muestra:
Instalar GoAccess desde las fuentes en Linux
Descarga, extrae y compila GoAccess con:
wget https://tar.goaccess.io/goaccess-1.4.6.tar.gz
tar -xzvf goaccess-1.4.6.tar.gz
cd goaccess-1.4.6/
./configure --enable-utf8 --enable-geoip=mmdb
make
make install
Construir desde GitHub (Desarrollo)
git clone https://github.com/allinurl/goaccess.git
cd goaccess
autoreconf -fiv
./configure --enable-utf8 --enable-geoip=mmdb
make
make install
Distribuciones
Lo más fácil es instalar GoAccess en GNU+Linux utilizando el gestor de paquetes preferido de tu distribución de GNU+Linux. Ten en cuenta que no todas las distribuciones tendrán la última versión de GoAccess disponible.
- Debian/Ubuntu
sudo apt-get install goaccess
Repositorio oficial de GoAccess para Debian y Ubuntu
echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
sudo apt-get update
sudo apt-get install goaccess
- Fedora
yum install goaccess
- Arch
pacman -S goaccess
- Gentoo
emerge net-analyzer/goaccess
- OS X / Homebrew
brew install goaccess
- FreeBSD
cd /usr/ports/sysutils/goaccess/ && make install clean
pkg install sysutils/goaccess
- OpenBSD
cd /usr/ports/www/goaccess && make install clean
pkg_add goaccess
- openSUSE
zypper ar -f obs://server:http http
zypper in goaccess
- OpenIndiana
pkg install goaccess
- pkgsrc (NetBSD, Solaris, SmartOS, …)
pkgin install goaccess
Windows
CowAxess es una implementación de GoAccess para sistemas Windows. Es un paquete de GoAccess, Cygwin y muchas otras herramientas relacionadas para convertirlo en una solución completa y lista para usar para el análisis de registros web en tiempo real, todo en un paquete de 4 MB.
Si prefieres ir por el camino más tedioso, GoAccess se puede utilizar en Windows a través de Cygwin. Consulta los paquetes de Cygwin. O a través del subsistema GNU+Linux en Windows 10.
¿Cómo utilizar GoAccess?
Una vez que tengas instalado GoAccess en tu máquina Linux, puedes empezar a utilizarlo ejecutando los siguientes comandos.
Cómo empezar
- Para dar salida a un terminal y generar un informe interactivo:
goaccess access.log
- Para generar un informe HTML:
goaccess access.log -a > report.html
- Para generar un informe JSON:
goaccess access.log -a -d -o json > report.json
- Para generar un archivo CSV:
goaccess access.log --no-csv-summary -o csv > report.csv
- GoAccess también permite una gran flexibilidad para el filtrado y análisis en tiempo real. Por ejemplo, para diagnosticar rápidamente los problemas mediante la supervisión de los registros desde que se inició goaccess:
tail -f access.log | goaccess -
- Y aún mejor, para filtrar mientras se mantiene abierta una pipe para preservar el análisis en tiempo real, podemos hacer uso de
tail -f
y una herramienta de patrones de coincidencia comogrep
,awk
,sed
, etc:
tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -
- o para parsear desde el principio del archivo manteniendo la pipe abierta y aplicando un filtro
tail -f -n +0 access.log | grep -i --line-buffered 'firefox' | goaccess -o report.html --real-time-html -
Consejos
Además, cabe destacar que si queremos ejecutar GoAccess con menor prioridad, podemos ejecutarlo como:
nice -n 19 goaccess -f access.log -a
y si no quieres instalarlo en tu servidor, puedes ejecutarlo desde tu máquina local.
ssh -n root@server 'tail -f /var/log/apache2/access.log' | goaccess -
goaccess (este enlace se abre en una nueva ventana) por allinurl (este enlace se abre en una nueva ventana)
GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.