Introducción
GoAccess es un analizador de registros web en tiempo real de código abierto y visor interactivo que se ejecuta en un terminal en sistemas *nix o a través de su navegador .
Proporciona rápido y valiosas estadísticas HTTP para los administradores de sistemas que requieren un informe de servidor visual sobre la marcha.
GoAccess fue diseñado para ser un analizador de registros rápido basado en terminal. Su idea central es analizar y ver 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 ).
Si bien la salida del terminal es la salida predeterminada, tiene la capacidad de generar un informe en tiempo real completo y autónomo. Informe HTML (excelente para análisis, monitoreo y visualización de datos ), así como un informe JSON y CSV.
INSTALACIÓN
Instalar GoAccess es bastante fácil. Simplemente descárguelo, extráigalo y compílelo
Ilustraremos cómo instalarlo en las diferentes distribuciones de Linux más comunes.
Instalar GoAccess en RHEL/CentOS 8
Método 1:
Crear desde el sitio de goaccess
Siga estos pasos y ejecute los comandos a continuación para comenzar con la instalación.
Primero, debe instalar epel repo y actualizar los paquetes del sistema.
dnf -y install epel-release
dnf -y update
shutdown -r now
GoAccess está escrito en el lenguaje de programación C. Por lo tanto, la única dependencia requerida es ncurses biblioteca y gcc . Para instalar los ncurses y gcc , ejecuta:
dnf -y install ncurses-devel gcc
Instale los paquetes opcionales ejecutando:
dnf -y install geoip-devel tokyocabinet-devel
También es posible que deba instalar herramientas de compilación como autoconf y gettext
dnf install -y autoconf gettext
Descarga goaccess tarball con:
[root@unixcop ~]# wget https://tar.goaccess.io/goaccess-1.5.1.tar.gz
--2021-09-14 09:43:47-- https://tar.goaccess.io/goaccess-1.5.1.tar.gz
Resolving tar.goaccess.io (tar.goaccess.io)... 67.205.130.138
Connecting to tar.goaccess.io (tar.goaccess.io)|67.205.130.138|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 642860 (628K) [application/x-gzip]
Saving to: 'goaccess-1.5.1.tar.gz'
goaccess-1.5.1.tar.gz 100%[=======================================================================>] 627.79K 395KB/s in 1.6s
2021-09-14 09:43:51 (395 KB/s) - 'goaccess-1.5.1.tar.gz' saved [642860/642860]
[root@unixcop ~]#
Luego extráigalo y compílelo con los siguientes comandos:
[root@unixcop ]# tar -xzvf goaccess-1.5.1.tar.gz
[root@unixcop ]# cd goaccess-1.5.1/
[root@unixcop goaccess-1.5.1]# ./configure --enable-utf8
[root@unixcop goaccess-1.5.1]# make
[root@unixcop goaccess-1.5.1]# make install
Método 2:
Construir desde GitHub (Desarrollo)
Simplemente ejecute los siguientes comandos para iniciar la instalación desde GitHub:
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fi
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
$ make install
Instalar GoAccess en las otras Distribuciones
Fedora
# yum install goaccess
Arco Linux
# pacman -S goaccess
Gentoo
# emerge net-analyzer/goaccess
OS X / Cerveza casera
# brew install goaccess
BSD gratuito
# pkg install sysutils/goaccess
OpenBSD
# pkg_add goaccess
Abrir SUSE
# zypper ar -f obs://server:http http
# zypper in goaccess
pkgsrc (NetBSD, Solaris, SmartOS)
# pkgin install goaccess
Slackware
# curl https://slackbuilds.org/slackbuilds/14.1/system/goaccess.tar.gz | tar xvz
# cd goaccess/
# GEOIP=yes ./goaccess.SlackBuild
Cómo usar GoAccess desde Terminal
Elija el archivo de registro según su sistema operativo y el servidor web utilizado. En los sistemas basados en Debian, los registros se generan en /var/log/apache2 El directorio y el sistema Apache basado en Redhat crean registros en /var/log/httpd directorio. Utilice la opción -f para definir el archivo de registro con el comando goaccess.
goaccess -f /var/log/httpd/access_log
A continuación, seleccione el formato de registro.
NOTA :El formato de registro predeterminado de Apache es COMBINADO.
GoAccess también le permite definir el formato de registro usando –log-format opciones de comando. Por ejemplo, para usar el formato de registro COMBINADO, el comando será:
goaccess /var/log/httpd/access_log --log-format=COMBINED
Verá el resultado en la consola del sistema como se muestra a continuación:
Puede notar que no hay ninguna solicitud en los registros
Hagamos algunas solicitudes.
La salida de goaccess en la consola del sistema debe cambiarse así:
Si se desplaza hacia abajo, verá información sobre los sistemas operativos y los navegadores que solicitan la página web, como se muestra a continuación.
Puede presionar 'q' para salir del visor de terminal de GoAccess.
Ver resultados de GoAccess en el panel web
GoAccess permite a los usuarios generar informes en varios formatos como HTML, JSON y CSV. Podemos generar el informe usando el siguiente comando en un archivo html.
[root@unixcop ~]# goaccess /var/log/httpd/access_log --log-format=COMBINED -a -o /var/www/html/report.html
[PARSING /var/log/httpd/access_log] {0} @ {0/s}
[root@unixcop ~]#
- -a – Habilitar una lista de agentes de usuario por host
- -o – Se utiliza para definir el archivo de salida
- El formato de salida se selecciona automáticamente según la extensión del nombre del archivo de salida
A continuación, acceda a report.html utilizando la dirección IP del servidor o el nombre de dominio como se muestra a continuación:
Utilice el servicio crond para actualizar el archivo del panel web
Puede programar el comando goaccess para actualizar el informe html.
Simplemente cree un script de shell
vim /mnt/goaccess.sh
Luego agregue lo siguiente:
!/bin/bash
goaccess /var/log/httpd/access_log --log-format=COMBINED -a -o /var/www/html/report.html
Luego programe el script anterior con crontab:
crontab -e
Agregue el siguiente contenido al final del archivo
#Cron job to update Goaccess HTML repot
* * * * * /mnt/goaccess.sh
Conclusión
En esta guía, explicó cómo instalar y usar GoAccess para ver los registros del servidor web en formatos visuales.