Monitorizando las conexiones de Squid con InfluxDB y Grafana

Muchas son las herramientas que se utilizan para el análisis de los registros del servidor proxy Squid, aquí en sysadminsdecuba podrán encontrar artículos referentes a esta tarea. Otra de las formas de monitorizar a squid es utilizando su protocolo de administración  cache_object:// donde se puede acceder directamente a información interna del servidor. Existe una aplicación SqStat que es un ejemplo de monitorización a través de un sitio web, de la utilización del cache_object://localhost/active_requests para visualizar una amplia información acerca de todas las conexiones activas de Squid, pudiendo observar información por cada conexión a cada URL, ordenadas por usuario o por IP, obteniendo cuántos datos a transferido, a que delay_pool pertenece, etc.

Ahora vamos a utilizar otra manera de hacerlo, les comentaré de cómo enviar esos datos desde el Squid para el servidor InfluxDB, para que de ahí poder realizar cualquier tipo de consultas y poder crear un buen dashboard con Grafana.

Manos a la obra

Lo primero es configurar nuestro Squid, que los que utilizan actualmente SqStat pueden omitir ya que lo tienen configurado, para que habilite el acceso a su protocolo de administración (desde la misma pc por seguridad), ponemos en el fichero de configuración, generalmente en /etc/squid/squid.conf

Luego recargamos Squid

Ahora podemos probar que Squid tiene habilitado el manager:

Ahora debemos configurar InfluxDB con la base de datos que albergará toda la información generada. En InfluxDB existen políticas de retención, que no es más que una forma de decirle por cuánto tiempo y cómo se almacenarán las métricas, por defecto es infinito y guarda íntegramente todos los datos. En nuestro caso, como toda la información de Squid también va a los registros, entonces no necesitas de por vida todos estos datos en InfluxDB, por lo que especifico una política de retención de 7 días, esto se configura en el Chronograf:

Luego de que Squid está configurado procedemos a descargarnos el programa que hará las consultas a Squid y lo enviará a InfluxDB, lo programé en Ruby y con dependencia del paquete de InfluxDB para Ruby por lo que deberían tenerlo instalado:

Nos descargamos la versión más actualizada y el fichero app.rb lo podemos poner preferiblemente en /usr/bin o /usr/local/bin . Después de descargarlo y como todavía no tiene un fichero de configuración, debemos abrirlo y reemplazar ciertas líneas (como el script es corto, lo publico directamente, por si alguien no tiene acceso a internet), específicamente la 6 y 45:

Ya con esto enviamos los datos, pero faltaría establecerlo como un servicio así no tendríamos que iniciarlo cada vez que reinicia el servidor. Para este menester les comento como realizarlo con SystemD (soy de los que lo apoya):

Ahora quedaría solo montar las gráficas en Grafana

(Visited 991 times, 1 visits today)
Sobre Luis Felipe Domínguez Vega 9 Artículos
Administrador de Sistemas y Programador entusiasta de tecnologías libres.

Sé el primero en comentar

Dejar una contestacion

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


*