Cómo instalar y utilizar GoAccess Web Log Analyzer en Ubuntu 20.04

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación de GoAccess
    1. Método 1: compilación desde el código fuente
    2. Método 2: Uso de los repositorios oficiales de GoAccess
  • Paso 2: Edición de la configuración de GoAccess
  • Paso 3: Acceder a los archivos de registro de Apache con GoAccess
  • Paso 4: Navegación por el panel de control de la terminal
    1. 1 — Visitantes únicos por día
    2. 2 – Archivos solicitados (URL)
    3. 3 — Solicitudes estáticas
    4. 4 — URL no encontradas (404)
    5. 5 — Nombres de host y direcciones IP de los visitantes
    6. 6 — Sistemas operativos
    7. 7 — Navegadores
    8. 8 — Distribución del tiempo
    9. 9 — Hosts virtuales
    10. 10 — URL de referencia
    11. 11 — Sitios de referencia
    12. 12 — Frases clave
    13. 13 — Códigos de estado HTTP
    14. 14 — Usuario remoto (autenticación HTTP)
    15. 15 — Estado de la caché
    16. 16 — Ubicación geográfica
  • Paso 5: Generar informes
  • Conclusión
  • El autor seleccionó Internet Archive para recibir una donación como parte del programa Write for DOnations.

    Introducción

    GoAccess es una herramienta para monitorear registros de servidores web en tiempo real. Está escrita en C y utiliza la popular biblioteca ncurses para su interfaz de panel de control, a la que se puede acceder directamente desde la línea de comandos.

    Esto es genial porque puedes acceder a cualquier servidor web que controles mediante SSH y ver o analizar estadísticas relevantes de forma rápida y segura. Además de la interfaz del panel de control de línea de comandos, también es capaz de mostrar las estadísticas en otros formatos, como HTML, JSON y CSV, que puedes usar en otros contextos o compartir con otros.

    GoAccess también podría ser una gran alternativa a las herramientas de análisis del lado del cliente según sus necesidades. Analiza los registros de su servidor directamente, por lo que no necesita cargar ningún script adicional y sus datos están completamente bajo su control.

    En este tutorial, instalará y configurará GoAccess para Apache en un servidor web Ubuntu 20.04. Accederá a los archivos de registro de Apache con GoAccess antes de revisar los módulos disponibles y los accesos directos de navegación en la interfaz de línea de comandos.

    Prerrequisitos

    Para este tutorial, necesitarás lo siguiente:

    • Un servidor Ubuntu 20.04. Puedes configurarlo siguiendo este tutorial de configuración inicial de servidor para Ubuntu 20.04, que incluye un usuario no root con privilegios sudo y un firewall.

    • Apache instalado siguiendo Cómo instalar Apache en Ubuntu 20.04.

    Paso 1: Instalación de GoAccess

    En este paso instalará la herramienta GoAccess y sus dependencias.

    Comience por asegurarse de que la base de datos y el sistema del paquete estén actualizados:

    1. sudo apt update
    2. sudo apt full-upgrade

    Ahora es el momento de instalar GoAccess. Hay una versión de la herramienta disponible en los repositorios de Ubuntu, pero no suele ser la última versión estable. Por ejemplo, la última versión de GoAccess en el momento de escribir este artículo es la 1.4, mientras que la versión disponible en los repositorios de Ubuntu 20.04 es la 1.3.

    Para asegurarse de tener la última versión estable de GoAccess instalada en su servidor, puede compilarla desde la fuente o utilizar el repositorio oficial de GoAccess en Ubuntu.

    Método 1: compilación desde el código fuente

    Primero, instale las dependencias necesarias para compilar GoAccess desde la fuente:

    1. sudo apt install libncursesw5-dev libgeoip-dev libtokyocabinet-dev build-essential

    Instala las siguientes dependencias:

    • build-essential:instala muchos paquetes, que incluyen gcccompiladores para C, C+ y otros lenguajes de programación, y makepara crear el archivo make de GoAccess.
    • libncursesw5-dev: instala la biblioteca ncurses que GoAccess utiliza para su interfaz de línea de comandos.
    • libgeoip-dev:incluye los archivos necesarios para la biblioteca GeoIP.
    • libtokyocabinet-dev:Proporciona dependencias de base de datos para un mayor rendimiento.

    A continuación, descargue la última versión de GoAccess desde su sitio web oficial con el siguiente comando:

    1. wget http://tar.goaccess.io/goaccess-1.4.tar.gz

    Una vez completada la descarga, extraiga el archivo con:

    1. tar -xzvf goaccess-1.4.tar.gz

    Cambie al directorio recién descomprimido de la siguiente manera:

    1. cd goaccess-1.4/

    Ejecute el script de configuración que se encuentra dentro de este directorio:

    1. ./configure --enable-utf8 --enable-geoip=legacy

    La --enable-utf8bandera garantiza que GoAccess se compile con compatibilidad con caracteres amplios, mientras que --enable-geoiphabilita la compatibilidad con GeoLocation con las bases de datos GeoIP originales. Puede reemplazar legacycon mmdbpara utilizar las bases de datos GeoIP2 mejoradas en su lugar. Puede encontrar otras opciones de configuración en el sitio web de GoAccess.

    Recibirá un resultado similar al siguiente:

    Output. . .Your build configuration:  Prefix         : /usr/local  Package        : goaccess  Version        : 1.4  Compiler flags :  -pthread  Linker flags   : -lnsl -lncursesw -lGeoIP -lpthread  UTF-8 support  : yes  Dynamic buffer : no  Geolocation    : GeoIP Legacy  Storage method : In-Memory with On-Disk Persitance Storage  TLS/SSL        : no  Bugs           : hello@goaccess.io

    Ejecute el makecomando para crear el archivo makefile necesario para instalar GoAccess:

    1. make

    Por último, instale GoAccess utilizando el makefile previamente creado en el sistema:

    1. sudo make install

    Asegúrese de que el programa se haya instalado correctamente ejecutando:

    1. goaccess --version

    Recibirá el siguiente resultado:

    OutputGoAccess - 1.4.For more details visit: http://goaccess.ioCopyright (C) 2009-2020 by Gerardo OrellanaBuild configure arguments:  --enable-utf8  --enable-geoip=legacy

    Método 2: Uso de los repositorios oficiales de GoAccess

    Otra forma de instalar GoAccess es mediante el repositorio oficial de Ubuntu para el programa. Este método es preferible si desea que se actualice a una versión más nueva automáticamente durante las actualizaciones del sistema sin tener que compilar desde la fuente para cada nueva versión. Primero debe agregar el repositorio a su servidor:

    1. echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list

    Primero obtienes el nombre de la versión de la distribución y luego lo envías a tee, que se agrega al archivo /etc/apt/sources.list.d/goaccess.list.

    Con el repositorio en tu lista de fuentes, ahora puedes descargar la clave GPG para verificar la firma:

    1. wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -

    A continuación, actualice la base de datos del paquete con el siguiente comando:

    1. sudo apt update

    Por último, instale GoAccess:

    1. sudo apt install goaccess

    GoAccess ya está instalado en tu servidor Ubuntu. En el siguiente paso, accederás y editarás su archivo de configuración para poder realizar cambios en la forma en que se ejecuta el programa.

    Paso 2: Edición de la configuración de GoAccess

    GoAccess incluye un archivo de configuración en el que puede realizar cambios permanentes en el comportamiento del programa. Edite este archivo para especificar la hora, la fecha y el formato de registro para que GoAccess sepa cómo analizar los registros del servidor.

    El archivo de configuración puede estar ubicado en ~/.goaccessrco %sysconfdir%/goaccess.confdonde %sysconfdir%se encuentra /etc/, /usr/etc/, o /usr/local/etc/. Para averiguar dónde se encuentra el archivo de configuración en su servidor, ejecute el siguiente comando:

    1. goaccess --dcf
    Sample output/etc/goaccess/goaccess.conf

    Edite este archivo de configuración usando nano:

    1. sudo nano /etc/goaccess/goaccess.conf

    Nota: Si este archivo no existe en el servidor, asegúrese de crearlo primero y completarlo con el contenido del goaccess.confarchivo en GitHub.

    Muchas de las líneas del archivo están comentadas. Para habilitar una opción, elimine el primer #carácter que la precede. Primero, habilitemos la time-formatconfiguración para Apache. Esta configuración especifica la log-formathora y permite que GoAccess analice cualquier archivo de registro de Apache en texto sin formato que cumpla con los criterios de formato admitidos.

    /etc/goaccess/goaccess.conf

    # The following time format works with any of the# Apache/NGINX's log formats below.#time-format %H:%M:%S

    A continuación, descomentarás la date-formatconfiguración de Apache que especifica la log-formatfecha:

    /etc/goaccess/goaccess.conf

    # The following date format works with any of the# Apache/NGINX's log formats below.#date-format %d/%b/%Y

    Por último, descomente la log-formatconfiguración. Varias líneas cambian esta configuración y la que debe descomentar depende de la forma en que esté configurado su servidor web. Si tiene una configuración de hosts no virtuales, descomente la siguiente log-formatlínea:

    /etc/goaccess/goaccess.conf

    # NCSA Combined Log Formatlog-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

    De lo contrario, si tiene hosts virtuales configurados, descomente la siguiente línea:

    /etc/goaccess/goaccess.conf

    # NCSA Combined Log Format with Virtual Hostlog-format %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

    En este punto, puede guardar el archivo y salir del editor. Ahora está listo para ejecutar el programa GoAccess y analizar algunos archivos de registro de texto sin formato de Apache.

    Paso 3: Acceder a los archivos de registro de Apache con GoAccess

    El servidor Apache otorga acceso a su sitio web y mantiene un registro de acceso para todo el tráfico HTTP entrante. Estos registros, o archivos de registro, se almacenan en el sistema y pueden ser una valiosa fuente de información sobre el uso y la audiencia de su sitio web.

    En Ubuntu, los archivos de registro de Apache se almacenan en el /var/log/apache2directorio de forma predeterminada. Para inspeccionar el contenido de este directorio, ejecute el siguiente comando:

    1. sudo ls /var/log/apache2
    Sample outputaccess.log  error.log  other_vhosts_access.log

    Si su servidor ha estado funcionando durante mucho tiempo, es posible que encuentre .gzarchivos comprimidos en este directorio que contienen archivos de registro anteriores como resultado de la rotación de registros. Los registros más recientes se colocan en un access.logarchivo. En el caso de servidores web con hosts virtuales, es posible que deba cdingresar a subdirectorios dentro del /apache2directorio para ubicar los archivos de registro de cada host.

    Ejecutemos GoAccess en los registros de acceso de Apache para obtener información sobre el tipo de tráfico que maneja el servidor web. Ejecute el siguiente comando para analizar su access.logarchivo con GoAccess:

    1. sudo goaccess /var/log/apache2/access.log

    Esto iniciará el panel de línea de comandos de GoAccess.

    Nota: Si en su lugar aparece un mensaje de configuración del formato de registro, significa que los cambios que realizó en el archivo de configuración de GoAccess en el paso anterior no surten efecto. Asegúrese de que el archivo de configuración esté en el lugar correcto y de que haya quitado los comentarios de las configuraciones necesarias.

    Como se mencionó anteriormente, a veces tendrá varios archivos de registro comprimidos en un servidor web de larga duración. Para ejecutar GoAccess en todos estos archivos sin extraerlos primero, puede enviar la salida del zcatcomando a goaccess:

    1. zcat /var/log/apache2/access.log.*.gz | goaccess -a

    A continuación, aprenderá a navegar rápidamente a través de la interfaz del panel con atajos de teclado.

    Paso 4: Navegación por el panel de control de la terminal

    En la parte superior del panel se incluye un resumen de varias métricas clave, como el total de solicitudes durante el período del informe, los visitantes únicos, el tamaño del registro, los errores 404 no encontrados, los archivos solicitados, el tamaño del archivo de registro analizado, los referentes HTTP, el nombre de la fuente del registro, el tiempo que lleva procesar el archivo de registro y más.

    Debajo del panel superior, encontrará todos los módulos disponibles que brindan más detalles sobre las métricas mencionadas anteriormente y otros puntos de datos compatibles con GoAccess. Para navegar por la interfaz, utilice los siguientes atajos de teclado:

    • TABpara avanzar a través de los módulos disponibles y SHIFT+TABpara retroceder.
    • F5Para actualizar el tablero.
    • gpara moverse a la parte superior de la pantalla del tablero y Gpara moverse al último elemento del tablero.
    • oo ENTERpara expandir el módulo seleccionado.
    • jy kdesplazarse hacia abajo y hacia arriba dentro del módulo activo.
    • spara mostrar las opciones de clasificación para el módulo activo.
    • /para buscar en todos los módulos y npasar a la siguiente coincidencia.
    • 0-9y SHIFT+0activar rápidamente el módulo numerado correspondiente.
    • ?para ver el cuadro de diálogo de ayuda rápida.
    • qpara salir del programa.

    A continuación, examinemos cada uno de los módulos disponibles en el panel de control. Cada uno tiene un número y un título, y una indicación del número total de líneas presentes. El carácter indica el panel activo, que también se refleja en la parte superior del panel de control.

    A continuación se presenta una breve explicación de cada uno de los paneles. Cada sección a continuación corresponde al número y título del panel en el programa.

    1 — Visitantes únicos por día

    Este panel muestra los hits, visitantes únicos y ancho de banda acumulado para cada fecha informada. Se considera visitante único a aquel que tiene la misma dirección IP, fecha y agente de usuario. Incluye rastreadores web y arañas de forma predeterminada.

    2 – Archivos solicitados (URL)

    Este panel proporciona las estadísticas sobre los archivos no estáticos más solicitados en su servidor web. Muestra la ruta de solicitud, el protocolo y el método HTTP, los visitantes únicos, la cantidad de visitas y el ancho de banda acumulado.

    3 — Solicitudes estáticas

    Este panel proporciona las mismas métricas que el anterior, pero para archivos estáticos como imágenes, CSS, JavaScript u otros tipos de archivos.

    4 — URL no encontradas (404)

    Este panel también muestra las mismas métricas analizadas en 2 y 3, pero para rutas que no se encontraron en el servidor (404).

    5 — Nombres de host y direcciones IP de los visitantes

    Este panel proporciona información detallada sobre los hosts que se conectan a su servidor web. Puede encontrar su dirección IP, la cantidad de visitas y la cantidad de ancho de banda consumido. Esta es una excelente manera de identificar quién está consumiendo todo su ancho de banda y bloquearlo si es necesario.

    Si expande este panel presionando o, verá más información sobre cada host, como su país de origen, ciudad y resultado de búsqueda de DNS inversa.

    6 — Sistemas operativos

    Este panel muestra los diferentes sistemas operativos que utilizan los hosts para conectarse a su servidor web. Al expandir este panel, se mostrarán versiones específicas de cada sistema operativo.

    7 — Navegadores

    Similar al panel anterior, este informa los navegadores utilizados por cada visitante único de su servidor web y enumera versiones específicas para cada navegador una vez expandido.

    8 — Distribución del tiempo

    Aquí encontrará un informe por horas sobre la cantidad de visitas, visitantes únicos y ancho de banda consumido. Es una excelente manera de detectar períodos de tráfico pico en su servidor.

    9 — Hosts virtuales

    Este panel muestra los hosts virtuales analizados a partir del archivo de registro. Se activa solo si %vestá incluido en la configuración del formato de registro.

    10 — URL de referencia

    Aquí se reflejan las URL que remitieron a los hosts visitantes a su servidor web. Este panel está deshabilitado de forma predeterminada y solo se puede habilitar comentando la REFERRERSlínea resaltada a continuación en el archivo de configuración de GoAccess:

    /etc/goaccess/goaccess.conf

    #ignore-panel VISIT_TIMES#ignore-panel VIRTUAL_HOSTS#ignore-panel REFERRERS#ignore-panel REFERRING_SITES

    11 — Sitios de referencia

    Este panel muestra la dirección IP de los hosts de referencia, pero no la URL completa.

    12 — Frases clave

    Aquí se muestran las palabras clave utilizadas en la búsqueda de Google, la memoria caché de Google y el traductor de Google que llevaron a su sitio web. Este panel también está deshabilitado de forma predeterminada y debe habilitarse en la configuración:

    /etc/goaccess/goaccess.conf

    #ignore-panel REFERRERS#ignore-panel REFERRING_SITES#ignore-panel KEYPHRASES#ignore-panel STATUS_CODES

    13 — Códigos de estado HTTP

    Este panel refleja las estadísticas generales de los códigos de estado HTTP que devuelve el servidor web al responder a una solicitud. Al expandir el panel, se mostrarán las estadísticas agregadas de cada código de estado.

    14 — Usuario remoto (autenticación HTTP)

    Este panel muestra el ID de usuario de la persona que solicita un documento en su servidor, según lo determina la autenticación HTTP. En el caso de los documentos que no están protegidos con contraseña, esta parte será -. Tenga en cuenta que este panel solo está habilitado si %ees parte de la configuración del formato de registro.

    15 — Estado de la caché

    Este panel le permite determinar si una solicitud se almacena en caché y se atiende desde la memoria caché. Está habilitado si %Ces parte de la variable log-format y el estado puede ser MISS, BYPASS, EXPIRED, STALE, UPDATING, REVALIDATEDo HIT.

    16 — Ubicación geográfica

    Este panel ofrece un resumen de las ubicaciones geográficas derivadas de las direcciones IP visitadas. Al expandir este panel, se mostrarán las estadísticas agregadas para cada país de origen.

    Has revisado los paneles disponibles en el tablero, ahora generarás informes en diferentes formatos.

    Paso 5: Generar informes

    Además de mostrar los datos en la terminal, GoAccess también te permite generar informes HTML, JSON o CSV. Asegúrate de estar en el directorio de inicio antes de ejecutar cualquiera de los comandos de esta sección:

    1. cd ~

    Para generar el informe como HTML estático, especifique un archivo HTML como argumento del -oindicador. Este indicador también acepta nombres de archivo que terminen en .jsono .csv.

    1. sudo goaccess /var/log/apache2/access.log -o stats.html

    stats.htmlDebería aparecer un archivo en su directorio de usuario.

    1. ls
    Outputgoaccess-1.4  goaccess-1.4.tar.gz  snap  stats.html

    Puede copiar este archivo al directorio de usuario de su máquina local mediante scp. Ejecute este comando desde su máquina local, no desde el servidor remoto:

    1. scp user@your_server_ip:stats.html ~/stats.html

    Una vez copiado el archivo, puedes abrirlo en tu navegador con el opencomando en macOS:

    1. open ~/stats.html

    O si estás usando una distribución de Linux en tu máquina local:

    1. xdg-open ~/stats.html

    Ha generado un informe HTML y lo ha visto en su navegador.

    Conclusión

    En este artículo, analizamos la herramienta de línea de comandos GoAccess y analizamos cómo usarla para analizar registros de servidores. Si bien solo consideramos cómo se puede usar GoAccess con registros de Apache, la herramienta también admite otros formatos de registro, como Nginx, Amazon S3, Elastic Load Balancing y CloudFront.

    Puede consultar la documentación completa de GoAccess o ejecutarla man goaccessen su terminal.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion