martes, 15 de febrero de 2011

Monitoreo del acceso web vía Squid Proxy (access.log)

Como ustedes ya saben en este blog Squid Proxy no necesita introducción, además si estás buscando información sobre lo que trataremos sobre Squid ahora probablemente es porque ya has configurado un Proxy Squid en GNU/Linux; por lo que iremos directamente al asunto. Y bueno, solo por si las moscas no conoces lo que es Squid Proxy te diré que un proxy es un servidor o aplicación intermediaria entre una o varias computadoras por medio de las cuales se buscan recursos (regularmente de Internet) y el destino o servidor donde se encuentran dichos recursos. 

Fuera de los filtros o restricciones que se pueden establecer en un servidor o aplicación proxy, este suele trabajar en dos modalidades: 

  • Manual: En la que se debe configurar cada cliente de forma manual para que accese a Internet vía el proxy, indicándole la dirección IP y el puerto de dicho proxy; 
  • Transparente o intercepción: En la que cada cliente accesa directamente al proxy "sin darse cuenta" pues este tipo de servidor proxy por lo regular es la pasarela de la red local (gateway) y se han hecho los ajustes de IPtables necesarios para que direccione las solucitudes al puerto 80 como si fueran al puerto en el que la aplicación proxy trabaja (regularmente el puerto 3128 en Squid).


Finalmente, el objetivo de este post es ilustrarlos en lo que se refiere al monitorieo del tráfico en Squid Proxy. En posts anteriores vimos en detalle varios aspectos de Squid y también sobre el fichero access.log, y mencionábamos cómo podemos convertir la variable time, que está en tipo Unix, a un tipo de formato más entendible utilizando Perl.

Aunque existen varias aplicaciones para monitorear las actividades de Squid, nada mejor que un par de comandos que combinados rápidamente nos dan buenos resultados. El siguiente comando nos mostrará en tiempo real el acceso a Squid de los diferentes clientes o computadoras de la red que están navegando en Internet, pero la salida de este comando es enviada por tubería (pipe) a Perl para que nos devuelva la fecha y hora de acceso en formato más humano:

$ sudo tail -f /var/log/squid3/access.log | perl -pe 's/\d+/localtime($&)/e'


Espero les sirva de ayuda!


Artículos relacionados



Widget by Hoctro | Jack Book

8 comentarios:

  1. Linu¡x se está quedando un poco atras pero seguro que recurse, ya que es gratis y hecho por todos nosotros

    ResponderEliminar
  2. Excelente aporte. Gracias hermano.

    ResponderEliminar
  3. Muy bueno gracias, pero me gustaría obtener el mismo resultado de forma retrospectiva, es decir no en tiempo real

    ResponderEliminar
    Respuestas
    1. Claro que si, creo que con el siguiente comando se puede lograr. Pruebalo y nos cuentas.

      $ sudo cat /var/log/squid3/access.log | perl -pe 's/\d+/localtime($&)/e' | less


      Un saludo.

      Eliminar
    2. Hola, estuve algún tiempo ocupada en otras cosas por eso no había tenido oportunidad de agradecer su ayuda, el comando que me sugirió es perfecto para lo que necesitaba, una vez más mil gracias por compartir sus conocimientos, Un saludo
      Iliana

      Eliminar
  4. hola queria saber como puedo monitorear el uso de las paguinas,pero que me aparesca que computadora hizo y/o descargo los archivos, pero en retrospectiva.
    gracias

    ResponderEliminar
  5. Your this article is really good. Your work is really inspiring and informative thanks for share such a nice blog.
    access Mp3lemon in UK

    ResponderEliminar
  6. como lo puedo hacer para el archivo access.log me muestre las lineas que solo los "GET" y estén dentro de 1 minuto??

    ResponderEliminar