aptitude install sarg
Поскольку данная программа не умеет читать запакованные логи, да и просто ротированные, доведем напильником:
rm -f /etc/cron.*/sarg* cat >/etc/cron.d/sarg <<EOF #sarg 25 0 * * * root if [ -x /usr/sbin/sarg-reports ]; then /usr/sbin/sarg-reports daily ; fi 47 0 * * 7 root if [ -x /usr/sbin/sarg-reports ]; then /usr/sbin/sarg-reports weekly ; fi 52 0 1 * * root if [ -x /usr/sbin/sarg-reports ]; then /usr/sbin/sarg-reports monthly ; fi EOF sed -i 's|daily|montly|' /etc/logrotate.d/squid
Теперь отчеты будут генерироваться с полуночи до часу, до ротирования логов.
Правим в /etc/squid/sarg-reports.conf переменную HTMLOUT= она указывает куда складывать отчеты.
Если внутри сети есть днс-сервер, то имеет смысл в /etc/squid/sarg.conf проставить опцию resolve_ip yes
Еще надо настроить apache, например при HTMLOUT=/var/www/sarg там должно быть что-то вроде:
Alias /sarg /var/www/sarg <DirectoryMatch /var/www/sarg/> Options -Indexes -FollowSymlinks DirectoryIndex index.html AllowOverride None Order deny,allow Allow from 192.168.0.13 # direktor Allow from 192.168.0.7 # me </DirectoryMatch>
для проверки можно запустить:
sarg-reports today
При наличии сегодняшнего лога сквида в /var/www/sarg сгенерируется отчет, и будет доступен по адресу http://server_ip/sarg/
P.S. со временем отчеты начинают занимать довольно много места, особенно при большой сети и активности в данной сети, поэтому:
cat /etc/cron.montly/sarg-old-clean #! /bin/bash # вычистить дневные и недельные отчеты сарга за предпоследний месяц if [ $UID -ne 0 ] ; then echo 'run this script whith SUDO' exit 1 fi . /etc/squid/sarg-reports.conf mnth=$(LANG=C date +%Y%b --date="2 month ago") rm -fr $HTMLOUT/Daily/$mnth* sed -i "/$mnth/d" $HTMLOUT/Daily/index.html rm -fr $HTMLOUT/Weekly/$mnth* sed -i "/$mnth/d" $HTMLOUT/Weekly/index.html