SquidStat, analizador de logs de squid diferente y 100% cubano

SquidStats

Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo de registros de squid. Esta herramienta que es 100% cubana y creada por Manuel Alberto Gorrin (AKA @king_0f_deathhh) nos permite mostrar de forma ordenada y en tiempo real las estadísticas de squid.

SQUIDSTATS nos brinda:

  1. Análisis de registros en tiempo real: Analiza las conexiones activas de Squid y muestra información detallada.
  2. Monitoreo de usuarios: Identifica las conexiones por nombre de usuario, URI y tipo de registro.
  3. Resumen de métricas:
    Total de datos leídos y escritos por cada conexión.
    Número de solicitudes por conexión.
    Uso del pool de retardo.
  4. Panel interactivo: Interfaz clara para una fácil interpretación de los datos.
  5. Estadísticas de caché de Squid:
    Entradas almacenadas.
    Capacidad usada y libre.
    Tamaño máximo y actual de la caché.
    Uso de espacio en disco e inodos.
    Antigüedad de los objetos en caché.
  6. Registros de usuarios:
    Monitoreo de la actividad del usuario
    Visualizaciones atractivas
    Filtrado y búsqueda avanzados
    Resultados paginados
  7. Gráficos principales:
    Actividad de los 20 usuarios principales
    Uso de datos de los 20 usuarios principales
    Total de usuarios
    Total de datos transmitidos
    Total de solicitudes
    Y más…

En esta entrada les mostrare como instalar esta útil herramienta en nuestros entornos de trabajo.

Si nos remitimos a su repositorio en github podemos observar los requisitos que debemos cumplir para una correcta instalación. Nuestro entorno sera Debian 12 y debemos cumplir los siguientes requisitos:

  • Tener instalado Python 3.10 o superior
  • Tener corriendo un servidor proxy Squid (obvio no creen)
  • squidclient instalado

Comenzaremos averiguando si tenemos python 3 y los paquetes necesarios :

Instalaremos los paquetes faltantes. Debajo muestro como instalarlos todos a pesar de poseer algunos:

El siguiente requisito es estrictamente obligatorio sin él, se mostrarían mal las gráficas y estadísticas de la web. Debemos editar la forma en que nuestro squid crea los logs, para ello agregaremos la siguiente línea en su configuración. Localizamos y editamos el fichero de configuración de squid:

Con esto lograremos tener una mayor información en los logs para mostrarla en la web.

NOTA: Si posee algún servicio aparte de parseo de logs que no soporta el formato detallado, entonces cree 2 ficheros de logs.

Continuamos clonando el repo de SquidStats.

Una vez clonado, pasaremos a instalar los requerimientos de pyhton para el uso de la web. Para ello prepararemos un entorno virtual (venv) para no tener el error error: externally-managed-environment al instalar los requerimientos. Se puede instalar paquetes de Python en todo el sistema, usando apt install python3-xyz, donde xyz es el paquete que intentas instalar. Pero, para hacer más fácil el proceso usaremos pip install xyz. Creamos el entorno virtual así:

Ahora procedemos a instalar los requerimientos que están en la carpeta que clonamos, con el nombre de requirements.txt

Nos mostraría algo parecido a lo siguiente:

Nota: Nótese el prefijo (venv) delante del promtp esto significa que estamos instalándolo para ese ambiente virtual. La salida de ustedes puede diferir a esta, debido a que poseía algunos paquetes ya instalados.

Finalmente debemos crear nuestro fichero env (enviroment) para la web.

Nota: SQUID_PORT es el puerto que está usando su proxy, puede variar. SQUID_LOG es el camino a los logs de squid, también pueden variar como por ejemplo que haya creado 2 logs con diferentes nombres. DATABASE_TYPE es el tipo de base de datos que usaremos, por defecto es SQLITE. REFRESH_INTERVAL es el tiempo en segundos que demora la web en refrescar la información, en un futuro se podrá cambiar vía web.

Solo resta correr nuestra web:

Nos mostraría una salida como esta:

Como se muestra en su corrida ya podemos acceder a su web. Abrimos en el navegador la siguiente direccion.

Nota: Las gráficas se irán llenando a medida que vaya analizando los registros con el nuevo formato que le definimos. Es decir que las entradas antiguas no se mostrarán. Las fotos pueden diferir del diseño actual debido a que es un proyecto en progreso.

Para garantizar que la aplicación se inicie automáticamente cuando se inicia el sistema, tenemos 2 opciones. La primera creando una tarea en el crontab:

La segunda variante y mas robusta creando un servicio:

Para finalizar, les informo que el creador nos da un script que automatiza toda la instalación, y nos hace todo el trabajo. Sé que dirán que porque no comencé por ahí, pero sí lo hiciera no tendría sentido crear un tutorial. ¿Cómo podemos usarlo?

El script también nos permite actualizar la web una vez que el desarrollador libere una nueva versión.

Como extra les enseñare a usar MariaDB como base de datos para nuestra web. Para ello montaremos un servidor central de bases de datos que recibira datos de la aplicacion permitiendonos tener  un historial de navegacion. Comenzamos con los requisitos para nuestro servidor de base de datos.

  • Debian 12 o Ubuntu 24 como sistema operativo.
  • MariaDB 11 o superior

Si usasmos Debian 12:

Crearemos el repositorio actualizado de MARIADB:

Si usamos Ubuntu 24:

Crearemos el repositorio actualizado de MARIADB:

Instalamos MARIADB 11

Ahora vamos a reforzar el servidor de base de datos usando la herramienta incluida “mysql_secure_installation”. Durante una primera instalación no hay contraseña root, por lo que puedes confirmar la consulta con ENTER. Se recomienda establecer una contraseña directamente, el cuadro de diálogo correspondiente aparecerá automáticamente:

Ahora detenga el servidor de base de datos y luego guarde la configuración predeterminada para que pueda realizar ajustes inmediatamente después.

Copie el siguiente contendio en el archivo my.cnf nuevo que creamos:

Reincie el servicio.

 

 

Como palabras finales felicitar al colega Manuel Alberto Gorrin por esta maravillosa herramienta que nos ayudara en el día a día de nuestras tareas. Pasen por su github y apoyenlo dándole una estrella a su proyecto. Si desean contribuir en el desarrollo de la misma háganlo saber entrando a nuestro grupo de telegram

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Alexander Rivas Alpizar 62 artículos
Administrador de Redes IDEAR Cienfuegos

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*