Sarg (Squid Analysis Report Generator) es una herramienta que permite a los administradores de sistemas ver de una manera sencilla y amigable que sitios de Internet visitan (incluso se puede saber hasta la hora en que la visitó) los usuarios de la red local usando los logs de Squid. Genera una lista diaria, semanal, mensual o personalizada con los sitios de Internet que visita cada usuario, cuanto consumió (MB), etc. También genera una lista de los sitios más visitados (Top Sites).
Por una razón que desconozco, Sarg no se encuentra en los repositorios de Squeeze. Pero eso no significa que no se pueda instalar. Para instalarlo, primeramente hay que checar cuales son sus
dependencias e instalarlas (libc0.1, libc0.3, libc6, libapache2-mod-php5, apache2, squid). Luego se descarga el paquete de Sid y se instala con:
# dpkg -i sarg_2.3-1_arquitectura.deb
Una vez instalado, hay que configurarlo para que se generen diariamente los reportes y estadísticas. Los archivos de configuración se encuentran en "
/etc/sarg/". El archivo de configuración principal es "
/etc/sarg/sarg.conf" y algunos de sus parámetros son los siguientes:
1 access_log /var/log/squid/access.log
2 output_dir /var/lib/sarg
3 exclude_hosts /etc/sarg/exclude_hosts
4 date_format e
5 index yes
6 topsites_num 100
1 Indica la ubicación del log de Squid
2 Directorio donde se guardarán los reportes
3 Lista de equipos que no se incluiran en los reportes
4 Formato de la fecha usada en los reportes
5 Genera una página principal index.html
6 Número total de sitios del TopSites
El archivo
/etc/sarg/exclude_users contiene los usuarios que no formarán parte de los reportes.
El archivo
/etc/sarg/exclude_hosts contiene los equipos que no se desea formen parte de los reportes de SARG. Pudiendo contener direcciones IP (Ejemplo: 192.168.1.10), una red completa (192.168.1.0/24), el nombre de un equipo (equipo.red.local) o todos los equipos de una red (*.red.local)
Configuración de apache
Para poder acceder a los reportes generados por Sarg es necesario configurar apache y es muy recomendable restringir el acceso a dichos reportes. A continuación se explica como hacerlo:
Se crea el archivo /etc/apache2/conf.d/sarg con el siguiente contenido:
Alias /sarg /var/lib/sarg
<Directory /var/lib/sarg>
DirectoryIndex index.html
order deny,allow
deny from all
allow from 127.0.0.1 192.168.1.10
AuthName "Solo usuarios autorizados."
AuthType Basic
require valid-user
AuthUserFile /var/www/claves-users-sarg
</Directory>
Se crea el archivo donde se almacenarán las claves, se limitan permisos de lectura y escritura sólo al dueño, se asigna a www-data como propietario del archivo:
# touch /var/www/
claves-users-sarg
# chmod 0600 /var/www/
claves-users-sarg
# chown www-data.www-data /var/www/claves-users-sarg
Se genera el usuario y se asigna el password:
# htpasswd /var/www/
claves-users-sarg
usuario
Luego se reinicia apache para que los cambios surjan efecto:
# /etc/init.d/apache2 restart
En Squeeze hay un problema que impide que se generen los reportes diarios. El problema es que se realiza una rotación diaria de los logs de Squid y dicha rotación se realiza justo antes de que Sarg genere los reportes. Esto es el scrip
/etc/cron.daily/logrotate se ejecuta antes que
/etc/cron.daily/sarg y cuando éste último se ejecuta el log
/var/log/squid/access.log está vacío. Esto se soluciona muy sencillo cambiando el nombre de /etc/cron.daily/sarg:
# mv /etc/cron.daily/sarg /etc/cron.daily/0sarg
Ahora solo hay que esperar a que pase el tiempo para que se ejecuten los scripts que se encuentran en /etc/cron.daily/ a la hora programada en /etc/crontab.
Una vez generados los reportes se accede a http://IP-del-Server/sarg/ con el usuario y el password generados.