GoAccess Analizador de Registros Web en Tiempo Real
GoAccess Analizador de Registros Web en Tiempo Real

GoAccess: Analizador de Registros Web en Tiempo Real

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.

Uso de GoAccess
Uso de GoAccess
Ejemplo de GoAccess en tiempo real
Ejemplo de GoAccess en tiempo real

Informes completos

Mientras que la salida de la terminal es la salida por defecto, tiene la capacidad de generar un informe HTML completo, autónomo y en tiempo real, así como un informe JSON, y CSV.

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

Nota

Es probable que esto instale una versión obsoleta de GoAccess. Para asegurarte de que está ejecutando la última versión estable de GoAccess, consulta la opción alternativa siguiente.

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

Nota

Los paquetes .deb en el repo oficial están disponibles también a través de HTTPS. Es posible que tengas que instalar apt-transport-https.

  • 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.

Nota

La canalización de los datos en GoAccess no hará que aparezca un diálogo de configuración de registro/fecha/hora, tendrás que definirlo previamente en su archivo de configuración o en la línea de 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 como grep, 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 -

Nota

SSH requiere -n para que GoAccess pueda leer desde stdin. Además, asegúrate de utilizar claves SSH para la autenticación, ya que no funcionará si se requiere una frase de contraseña.

Dark Mode

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.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda
Más artículos
Contar frecuencia de palabras en archivo texto Linux
Linux: Contar frecuencia de palabras en archivo de texto