Generador de informes para Squid, en HTML
En este Wiki describo como instalar y configurar "Sarg" un sencillo y eficiente generador de informes para Squid. Esta configuración funciona incluso con las versiones 3 de Squid. Posteriormente instalaremos thttpd (servidor web ligero) para la visualización de estos informes desde cualquier pc de la red conectado al servidor a través del navegador web. También crearemos una tarea cron para que nos haga un informe diário.
Lo primero que haremos es apuntar nuestro sources.list a Etch debido a que la versión app que se encuentra en Lenny en el momento de escritura de este artículo tiene un bug que impide la correcta generación del archivo index.html.
con tu editor favorito entonces, modificamos temporalmente el sources.list
de esto:
deb http://ftp.cica.es/debian/ lenny main maina esto otro:
deb http://ftp.cica.es/debian/ etch main mainSiguiente paso:
aptitude updateseguidamente
aptitude install sargeditamos el archivo /etc/squid/sarg.conf y añadimos / editamos las siguientes líneas:
language Spanish
access_log /var/log/squid3/access.logsi tu versión de squid es anterior a squid3, la última línea arriba editada quedaría así:
access_log /home/chapero/access.lognos puede interesar que una tarea automatizada nos genere un informe al final del día, creamos entonces una tarea apuntando a donde nos interese, en este caso yo hize un archivo llamado sarg.sh el cual el contenido es este:
FECHA=`date +%d/%m/20%y`
sarg -d $FECHA - $FECHAlos reportes se generan en /var/www/squid-reports, esta tarea crea una carpeta en este directorio por cada día registrado
la tarea del cron quedaría de esta manera, antes de apagar la máquina a la hora que se haga regularmente:
50 23 * * * /root/sarg.shSe puede dar el caso que la persona que vaya a leer los informes vea en vez del nombre del usuario una IP, que suele ser lo habitual usando Sarg en conjunción con Squid, para ello, podemos crear un script que modifique esos valores de ip (192.168.0.10) a un Nombre (Juanillo)
para ello creamos un script "corregirips.sh" con este contenido
rm /home/chapero/sarg
rm /home/chapero/access.log
cp /var/log/squid/access.log /home/chapero/access.log
cat /home/chapero/access.log | perl -pi -e 's/192.168.10/Juanillo/g' | perl -pi -e 's/192.168.0.11/Juanilla/g' >> /home/chapero/sargnotesé que el script ahí procesará 2 IP's distintas, podemos añadir cuantas ip's queramos, sólo añadir el siguiente código después de cada g final de la linea correspondiente
| perl -pi -e 's/192.168.12/PadreJuanillo/g'No olvidemos darle permisos de ejecución
chmod +x /root/corregirips.shprocedemos a crear otra tarea cron para añadirla junto con la anterior:
40 23 * * * /root/corregirips.sh
50 23 * * * /root/sarg.shfinalizado este paso, sarg está instalado y haŕa un informe a la hora seleccionada en cron, ahora procederemos a instalar thttpd para visualizar ese informe desde cualquier estación de nuestra red:
antes de nada, asegurarse de que nuestro sources.list apunte de nuevo a lenny
aptitude install thttpdeditaremos el archivo /etc/thttpd/thttpd.conf y añadimos o descomentamos estas líneas
dir=/var/www/squid-reports/
globalpasswdsi nos interesa que al acceder desde cualquier pc de nuestra red a http://NOMBRESERVER nos pida una password para que la visualización de los informes lo puedan ver sólo quién nosotros queramos, almacenaremos los usuarios y contraseñas en un archivo, la contraseña irá en MD5 (Encriptada) para añadir un poco más de seguridad
iremos entonces hasta /var/www/squid-reports y crearemos un archivo llamado .htpasswd (punto incluido)
la creación de este archivo será asi:
usuario:PASSWORDENCRIPTADApara generar la contraseña usamos el comando desde consola "mkpasswd" y la contraseña debe contener mínimo 13 carácteres y el usuario debe contener de 2 a 16 caracteres.
reiniciamos el server web
/etc/init.d/thttpd restartpara generar el informe, sólo es necesario ejecutar
sargy ya está, ahora desde cualquier máquina cliente, vamos al navedador, y colocando http://NOMBREDELSERVER veremos una lista con los días de los cuales están hechos los informes, y veremos detalles de cada día seleccionado, antes de ello recordar ejecutar el pequeño script "sarg.sh" o ejecutar "sarg" desde consola