Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
goaccess — GoAccess es un analizador de registros web en tiempo real y un visor interactivo que se ejecuta en una terminal en sistemas *nix o a través de tu navegador. | Kitploit
Herramientas/GitHubGitHub/allinurl/goaccess
Utilidades de Propósito GeneralPrivacidadDetección de AnomalíasAnálisis de Registros
GitHuballinurl/goaccess

goaccess

GoAccess es un analizador de registros web en tiempo real y un visor interactivo que se ejecuta en una terminal en sistemas *nix o a través de tu navegador.

Ver Repositorio
20.8k1.2khace 1 díaRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

GoAccess C build GoAccess

¿Qué es?

GoAccess es un analizador de registros web y visor interactivo de código abierto y en tiempo real que se ejecuta en una terminal en sistemas *nix o directamente en su navegador. Diseñado pensando en administradores de sistemas, ingenieros DevOps y profesionales de seguridad, ofrece estadísticas HTTP rápidas y procesables e informes visuales del servidor sobre la marcha. GoAccess analiza sus registros del servidor web en tiempo real y presenta los datos directamente en la terminal o a través de un panel HTML en vivo, lo que facilita monitorear el tráfico, detectar anomalías y solucionar problemas al instante.

Más información en: https://goaccess.io.

Panel de Terminal de GoAccess Panel HTML de GoAccess

Características

GoAccess analiza el archivo de registro web especificado y genera los datos en la terminal X. Las características incluyen:

  • Completamente en Tiempo Real
    Todos los paneles y métricas están programados para actualizarse cada 200 ms en la salida de la terminal y cada segundo en la salida HTML.

  • Configuración Mínima Necesaria
    Simplemente ejecútelo contra su archivo de registro de acceso, seleccione el formato de registro y deje que GoAccess analice el registro de acceso y le muestre las estadísticas.

  • Seguimiento del Tiempo de Respuesta de la Aplicación
    Realice un seguimiento del tiempo que se tarda en atender la solicitud. Extremadamente útil si desea rastrear páginas que están ralentizando su sitio.

  • Autenticación WebSocket:
    GoAccess ofrece autenticación WebSocket mejorada, compatible con verificación JWT local y externa, con capacidades seguras de renovación de tokens e integración perfecta con sistemas de autenticación externos.

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

  • Procesamiento Incremental de Registros
    ¿Necesita persistencia de datos? GoAccess tiene la capacidad de procesar registros de forma incremental a través de las opciones de persistencia en disco.

  • Solo una Dependencia
    GoAccess está escrito en C. Para ejecutarlo, solo necesita ncurses como dependencia. Eso es todo. Incluso cuenta con su propio servidor WebSocket — http://gwsocket.io/.

  • Visitantes
    Determine la cantidad de aciertos, visitantes, ancho de banda y métricas para las solicitudes más lentas por hora o por fecha.

  • Métricas por Host Virtual
    ¿Tiene múltiples hosts virtuales (Server Blocks)? Cuenta con un panel que muestra qué host virtual está consumiendo la mayoría de los recursos del servidor web.

  • ASN (Mapeo del Número de Sistema Autónomo)
    Excelente para detectar patrones de tráfico malicioso y bloquearlos en consecuencia.

  • Esquema de Colores Personalizable
    Adapte GoAccess a su propio gusto/esquema de colores. Ya sea a través de la terminal o simplemente aplicando la hoja de estilo en la salida HTML.

  • Soporte para Grandes Conjuntos de Datos
    GoAccess cuenta con la capacidad de analizar registros grandes gracias a sus tablas hash optimizadas en memoria. Tiene un uso de memoria muy bueno y un rendimiento bastante bueno. Este almacenamiento también tiene soporte para persistencia en disco.

Casi todos los formatos de registro web...

GoAccess permite cualquier cadena de formato de registro personalizado. Las opciones predefinidas incluyen, entre otras:

  • Amazon CloudFront (Distribución de descarga).
  • Amazon Simple Storage Service (S3)
  • AWS Elastic Load Balancing
  • Formato de registro combinado (XLF/ELF) Apache | Nginx
  • Formato de registro común (CLF) Apache
  • Google Cloud Storage.
  • Hosts virtuales de Apache
  • Formato nativo de Squid.
  • Formato W3C (IIS).
  • Formato JSON estructurado de Caddy.
  • Variante CLF de Traefik

¿Por qué GoAccess?

GoAccess fue diseñado para ser un analizador de registros rápido basado en terminal. Su idea central es analizar y visualizar rápidamente las estadísticas del servidor web en tiempo real sin necesidad de usar su navegador (genial si desea hacer un análisis rápido de su registro de acceso a través de SSH, o si simplemente le encanta trabajar en la terminal).

También sirve como una herramienta práctica para el monitoreo de seguridad, facilitando la detección de actividad sospechosa, patrones de tráfico inusuales, intentos de fuerza bruta, escáneres, bots y solicitudes anómalas directamente desde sus registros.

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

Puede verlo más como una herramienta de comando de monitoreo que cualquier otra cosa.

Instalación

Estado del empaquetado

Construir desde el lanzamiento

GoAccess se puede compilar y usar en sistemas *nix.

Descargue, extraiga y compile GoAccess con:

root@kitploit:~
$ wget https://tar.goaccess.io/goaccess-1.10.2.tar.gz
$ tar -xzvf goaccess-1.10.2.tar.gz
$ cd goaccess-1.10.2/
$ ./configure --enable-utf8 --enable-geoip=mmdb --with-zlib
$ make
# make install

Construir desde GitHub (Desarrollo)

root@kitploit:~
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fiv
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install

Distribuciones

Es más fácil instalar GoAccess en GNU+Linux usando el gestor de paquetes preferido de su distribución GNU+Linux. Tenga en cuenta que no todas las distribuciones tendrán la última versión de GoAccess disponible.

Debian/Ubuntu

root@kitploit:~
# apt-get install goaccess

Nota: Es probable que esto instale una versión desactualizada de GoAccess. Para asegurarse de que está ejecutando la última versión estable de GoAccess, consulte la opción alternativa a continuación.

Repositorio oficial de GoAccess Debian y Ubuntu

root@kitploit:~
$ wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
$ echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
$ sudo apt-get update
$ sudo apt-get install goaccess

Nota:

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

Fedora

root@kitploit:~
# yum install goaccess

Arch

root@kitploit:~
# pacman -S goaccess

Gentoo

root@kitploit:~
# emerge net-analyzer/goaccess

OS X / Homebrew

root@kitploit:~
# brew install goaccess

FreeBSD

root@kitploit:~
# cd /usr/ports/sysutils/goaccess/ && make install clean
# pkg install sysutils/goaccess

OpenBSD

root@kitploit:~
# cd /usr/ports/www/goaccess && make install clean
# pkg_add goaccess

openSUSE

root@kitploit:~
# zypper ar -f obs://server:http http
# zypper in goaccess

OpenIndiana

root@kitploit:~
# pkg install goaccess

pkgsrc (NetBSD, Solaris, SmartOS, ...)

root@kitploit:~
# pkgin install goaccess

Windows

GoAccess se puede usar en Windows a través de Cygwin. Consulte los paquetes de Cygwin. O a través del subsistema GNU+Linux en Windows 10.

Docker

Se ha actualizado una imagen Docker, capaz de dirigir la salida de un registro de acceso. Si solo desea generar un informe, puede canalizar un registro desde el entorno externo a un proceso basado en Docker:

root@kitploit:~
touch report.html
cat access.log | docker run --rm -i -v ./report.html:/report.html -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED -

O en tiempo real

root@kitploit:~
tail -F access.log | docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED --real-time-html -

También hay documentación sobre cómo usar docker-compose.

Construir en un contenedor aislado

También puede construir el binario para sistemas basados en Debian en un entorno de contenedor aislado para evitar saturar su sistema local con las bibliotecas de desarrollo:

root@kitploit:~
$ curl -L "https://github.com/allinurl/goaccess/archive/refs/heads/master.tar.gz" | tar -xz && cd goaccess-master
$ docker build -t goaccess/build.debian-12 -f Dockerfile.debian-12 .
$ docker run -i --rm -v $PWD:/goaccess goaccess/build.debian-12 > goaccess

Puede leer más sobre el uso de la imagen Docker en DOCKER.md.

Paquetes de distribución

GoAccess tiene requisitos mínimos, está escrito en C y solo requiere ncurses. Sin embargo, a continuación se muestra una tabla de algunas dependencias opcionales en algunas distros para construir GoAccess desde el código fuente.

Nota: Es posible que necesite instalar herramientas de compilación como gcc, autoconf, gettext, autopoint, etc. para compilar/construir software desde el código fuente. Por ejemplo: base-devel, build-essential, "Development Tools".

Almacenamiento

Tablas hash predeterminadas

El almacenamiento en memoria proporciona un mejor rendimiento a costa de limitar el tamaño del conjunto de datos a la cantidad de memoria física disponible. GoAccess utiliza tablas hash en memoria. Tiene un uso de memoria muy bueno y un rendimiento bastante bueno. Este almacenamiento también tiene soporte para persistencia en disco.

Opciones de línea de comandos / configuración

Consulte opciones que se pueden proporcionar al comando o especificar en el archivo de configuración. Si se especifican en el archivo de configuración, las opciones largas deben usarse sin anteponer --.

Uso / Ejemplos

Nota: Canalizar datos a GoAccess no mostrará un diálogo de configuración de registro/fecha/hora; deberá definirlo previamente en su archivo de configuración o en la línea de comandos.

Primeros pasos

Para generar una salida en una terminal y generar un informe interactivo:

root@kitploit:~
# goaccess access.log

Para generar un informe HTML:

root@kitploit:~
# goaccess access.log -a > report.html

Para generar un archivo de informe JSON:

root@kitploit:~
# goaccess access.log -a -d -o report.json

Para generar un informe CSV a la salida estándar:

root@kitploit:~
# goaccess access.log --no-csv-summary -o csv

GoAccess también ofrece una gran flexibilidad para el filtrado y análisis en tiempo real. Por ejemplo, para diagnosticar rápidamente problemas monitoreando registros desde que se inició goaccess:

root@kitploit:~
# tail -f access.log | goaccess -

E incluso mejor, para filtrar mientras se mantiene abierta una tubería para preservar el análisis en tiempo real, podemos hacer uso de tail -f y una herramienta de coincidencia de patrones como grep, awk, sed, etc.:

root@kitploit:~
# tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -

o para analizar desde el principio del archivo mientras se mantiene la tubería abierta y se aplica un filtro

root@kitploit:~
# tail -f -n +0 access.log | grep -i --line-buffered 'firefox' | goaccess -o report.html --real-time-html -

Múltiples archivos de registro

Hay varias formas de analizar múltiples registros con GoAccess. La más simple es pasar múltiples archivos de registro a la línea de comandos:

root@kitploit:~
# goaccess access.log access.log.1

Incluso es posible analizar archivos desde una tubería mientras se leen archivos regulares:

root@kitploit:~
# cat access.log.2 | goaccess access.log access.log.1 -

Nota: se agrega un guión simple a la línea de comandos para que GoAccess sepa que debe leer desde la tubería.

Ahora, si queremos agregar más flexibilidad a GoAccess, podemos usar zcat --force para leer archivos comprimidos y sin comprimir. Por ejemplo, si deseamos procesar todos los archivos de registro access.log*, podemos hacer:

root@kitploit:~
# zcat --force access.log* | goaccess -

Nota: En Mac OS X, use gunzip -c en lugar de zcat.

Soporte de múltiples hilos

Use --jobs=<count> (o -j) para habilitar el análisis de múltiples hilos. Por ejemplo:

root@kitploit:~
# goaccess access.log -o report.html -j 4

Y use --chunk-size=<256-32768> para ajustar el tamaño del fragmento; el tamaño de fragmento predeterminado es 1024. Por ejemplo:

root@kitploit:~
# goaccess access.log -o report.html -j 4 --chunk-size=8192

Salidas HTML en tiempo real

GoAccess tiene la capacidad de generar datos en tiempo real en el informe HTML. Incluso puede enviar por correo electrónico el archivo HTML, ya que está compuesto por un solo archivo sin dependencias de archivos externos, ¡qué práctico!

El proceso de generar un informe HTML en tiempo real es muy similar al proceso de crear un informe estático. Solo se necesita --real-time-html para hacerlo en tiempo real.

root@kitploit:~
# goaccess access.log -o /usr/share/nginx/html/your_site/report.html --real-time-html

Para ver el informe, puede navegar a http://your_site/report.html.

De forma predeterminada, GoAccess usará el nombre de host del informe generado. Opcionalmente, puede especificar la URL a la que se conectará el navegador del cliente. Consulte FAQ para un ejemplo más detallado.

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --ws-url=goaccess.io

De forma predeterminada, GoAccess escucha en el puerto 7890. Para usar un puerto diferente al 7890, puede especificarlo como (asegúrese de que el puerto esté abierto):

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --port=9870

Y para vincular el servidor WebSocket a una dirección diferente a 0.0.0.0, puede especificarlo como:

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --addr=127.0.0.1

Nota: Para generar datos en tiempo real a través de una conexión TLS/SSL, debe usar --ssl-cert=<cert.crt> y --ssl-key=<priv.key>.

Filtrado

Trabajar con fechas

Otra tubería útil sería filtrar fechas del registro web

El siguiente comando obtendrá todas las solicitudes HTTP a partir del 05/Dic/2010 hasta el final del archivo.

root@kitploit:~
# sed -n '/05\/Dec\/2010/,$ p' access.log | goaccess -a -

o usando fechas relativas como el día de ayer o mañana:

root@kitploit:~
# sed -n '/'$(date '+%d\/%b\/%Y' -d '1 week ago')'/,$ p' access.log | goaccess -a -

Si queremos analizar solo un cierto período de tiempo desde la FECHA a hasta la FECHA b, podemos hacer:

root@kitploit:~
# sed -n '/5\/Nov\/2010/,/5\/Dec\/2010/ p' access.log | goaccess -a -

Si queremos conservar solo cierta cantidad de datos y reciclar el almacenamiento, podemos mantener solo un cierto número de días. Por ejemplo, para mantener y mostrar los últimos 5 días:

root@kitploit:~
# goaccess access.log --keep-last=5

Hosts virtuales

Suponiendo que su registro contiene el campo de host virtual. Por ejemplo:

root@kitploit:~
vhost.io:80 8.8.4.4 - - [02/Mar/2016:08:14:04 -0600] "GET /shop HTTP/1.1" 200 615 "-" "Googlebot-Image/1.0"

Y le gustaría agregar el host virtual a la solicitud para ver a qué host virtual pertenecen las URL principales:

root@kitploit:~
awk '$8=$1$8' access.log | goaccess -a -

Para hacer lo mismo, pero también usar filtrado y análisis en tiempo real:

root@kitploit:~
tail -f  access.log | unbuffer -p awk '$8=$1$8' | goaccess -a -

Para excluir una lista de hosts virtuales, puede hacer lo siguiente:

root@kitploit:~
# grep -v "`cat exclude_vhost_list_file`" vhost_access.log | goaccess -

Archivos, códigos de estado y bots

Para analizar páginas específicas, por ejemplo, visitas a páginas, html, htm, php, etc., dentro de una solicitud:

root@kitploit:~
# awk '$7~/\.html|\.htm|\.php/' access.log | goaccess -

Nota: $7 es el campo de solicitud para el formato de registro común y combinado (sin host virtual); si su registro incluye host virtual, entonces probablemente quiera usar $8 en su lugar. Es mejor verificar a qué campo está apuntando, por ejemplo:

root@kitploit:~
# tail -10 access.log | awk '{print $8}'

O para analizar un código de estado específico, por ejemplo, 500 (Error Interno del Servidor):

root@kitploit:~
# awk '$9~/500/' access.log | goaccess -

O múltiples códigos de estado, por ejemplo, todos los 3xx y 5xx:

root@kitploit:~
# tail -f -n +0 access.log | awk '$9~/3[0-9]{2}|5[0-9]{2}/' | goaccess -o out.html -

Y para obtener una visión general estimada de cuántos bots (rastreadores) están accediendo a su servidor:

root@kitploit:~
# tail -F -n +0 access.log | grep -i --line-buffered 'bot' | goaccess -

Consejos

También vale la pena señalar que si queremos ejecutar GoAccess con menor prioridad, podemos ejecutarlo como:

root@kitploit:~
# nice -n 19 goaccess -f access.log -a

y si no desea instalarlo en su servidor, ¡aún puede ejecutarlo desde su máquina local!

root@kitploit:~
# ssh -n root@server 'tail -f /var/log/apache2/access.log' | goaccess - --log-format=COMBINED

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

Solución de problemas

Recibimos muchas preguntas y problemas que ya han sido respondidos anteriormente.

  • ¿Problemas de coincidencia de fecha/hora? Verifique que su formato de registro y la configuración regional del sistema en la que ejecuta GoAccess coincidan. Consulte #1571
  • ¿Problemas con la coincidencia de patrones? Los espacios suelen ser un problema; consulte, por ejemplo, #136, #1579
  • Otros problemas al coincidir entradas de registro: Consulte >200 problemas cerrados sobre formatos de registro/fecha/hora
  • ¿Problemas con el procesamiento de registros? Consulte >111 problemas sobre procesamiento de registros

Procesamiento incremental de registros

GoAccess tiene la capacidad de procesar registros de forma incremental a través de su almacenamiento interno y volcar sus datos al disco. Funciona de la siguiente manera:

  1. Primero se debe persistir un conjunto de datos con --persist, luego se puede cargar el mismo conjunto de datos con.
  2. --restore. Si se pasan nuevos datos (a través de tubería o de un archivo de registro), se agregarán al conjunto de datos original.
NOTAS

GoAccess realiza un seguimiento de los inodos de todos los archivos procesados (asumiendo que los archivos permanecerán en la misma partición); además, extrae un fragmento de datos del registro junto con la última línea analizada de cada archivo y la marca de tiempo de la última línea analizada. Por ejemplo: inode:29627417|line:20012|ts:20171231235059

Primero, compara si el fragmento coincide con el registro que se está analizando; si es así, asume que el registro no ha cambiado drásticamente, por ejemplo, no ha sido truncado. Si el inodo no coincide con el archivo actual, analiza todas las líneas. Si el archivo actual coincide con el inodo, entonces lee las líneas restantes y actualiza el recuento de líneas analizadas y la marca de tiempo. Como precaución adicional, no analizará líneas de registro con una marca de tiempo ≤ que la almacenada.

Los datos canalizados funcionan basándose en la marca de tiempo de la última línea leída. Por ejemplo, analizará y descartará todas las entradas entrantes hasta que encuentre una marca de tiempo >= que la almacenada.

Ejemplos
root@kitploit:~
// registro de acceso del mes pasado
# goaccess access.log.1 --persist

luego, cárguelo con

root@kitploit:~
// agregue el registro de acceso de este mes y conserve los nuevos datos
# goaccess access.log --restore --persist

Para leer solo los datos persistidos (sin analizar nuevos datos)

root@kitploit:~
# goaccess --restore

Contribuir ##Cualquier ayuda con GoAccess es bienvenida. La forma más útil es probarlo y dar retroalimentación. No dudes en usar el rastreador de problemas de GitHub y las solicitudes de extracción para discutir y enviar cambios de código.

Puedes contribuir a nuestras traducciones editando los archivos .po directamente en GitHub o usando la interfaz visual inlang.com

¡Disfruta!

Descargar herramienta
  • Soporte para Docker
    Capacidad para construir la imagen Docker de GoAccess desde el repositorio upstream. Aún puede configurarlo completamente mediante el mapeo de volúmenes y editando goaccess.conf. Consulte la sección Docker a continuación. También hay documentación sobre cómo usar docker-compose.

  • DistroNCursesGeoIP (opt)GeoIP2 (opt)OpenSSL (opt)
    Ubuntu/Debianlibncurses-devlibgeoip-devlibmaxminddb-devlibssl-dev
    RHEL/CentOSncurses-develgeoip-devellibmaxminddb-developenssl-devel
    Archncursesgeoiplibmaxminddbopenssl
    Gentoosys-libs/ncursesdev-libs/geoipdev-libs/libmaxminddbdev-libs/openssl
    SlackwarencursesGeoIPlibmaxminddbopenssl