Sarg (Squid Analysis Report Generator) – парсер, анализатор логов Squid и генератор отчётов по ним (отчёты создаются в формате html). В этой статье я расскажу об установке Sarg на Squid3 и настройке Apache для авторизации и просмотра логов через браузер. Трафик SARG считает вместе с инфой отданной из кэша – т.е. всегда будет врать в большую сторону. Операционная система – Debian 6 Squeeze.
Sarg выдает отчеты в формате HTML и для работы с ними потребуется установленный веб-сервер. Для установки самого парсера необходимо в список репозиториев (/etc/apt/sources.list) внести строчку с бэкпортами:
1 |
deb http://backports.debian.org/debian-backports squeeze-backports main |
Устанавливаем:
1 |
apt-get install php5 libapache2-mod-php5 sarg |
Изменяем настройки в файле /etc/sarg/sarg.conf:
charset UTF-8
resolve_ip yes
access_log /var/log/squid3/access.log
output_dir /var/www/stat
и аналогичные настройки в /etc/sarg/sarg-reports.conf
Создаем папку для отчетов:
1 |
mkdir /var/www/stat |
Настроим авторизацию доступа к отчетам через веб – в apache2.conf добавьте:
1 |
AllowOverride All |
Апач увидит .htaccess’ы, укажем путь к файлу с логинами и паролями для просмотра сгенерированной информации – в /var/www/stat/.htaccess пишем:
1 2 3 4 5 |
AuthName "Restricted Area" AuthType Basic AuthUserFile /home/rooslan/.htpasswd AuthGroupFile /dev/null require valid-user |
Добавим первого пользователя и зададим ему пароль (логин/пасс, естественно, можете придумать свои):
1 |
htpasswd -cm /home/rooslan/.htpasswd root |
Редактируем /usr/sbin/sarg-reports:
1 2 3 4 |
<title>$PAGETITLE</title>\n\ \n\ \n\ \n\ |
В скрипте /usr/sbin/sarg-reports видим комментарий автора:
“REMEMBER: if you use logrotate, configure it to rotate the logs within MONTHLY basis, AFTER sarg-reports created the monthly html report.”
Поэтому в файле /etc/logrotate.d/squid3 вместо daily пропишем monthly – то есть, как только sarg сделает отчет за месяц, logrotate.d выполнит свою работу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/var/log/squid3/*.log { monthly compress delaycompress rotate 2 missingok nocreate sharedscripts prerotate test ! -x /usr/sbin/sarg-reports || /usr/sbin/sarg-reports monthly endscript postrotate test ! -e /var/run/squid3.pid || /usr/sbin/squid3 -k rotate endscript } |
Так как prerotate в конце месяца создаст отчет MONTHLY – закомментируем все строчки в файле /etc/cron.monthly/sarg
А чтобы ежедневно и еженедельно sarg запускался раньше, чем logrotate переименуем в 0sarg:
mv /etc/cron.daily/sarg /etc/cron.daily/0sarg
(run-parts –list /etc/cron.daily покажет очередность выполнения скриптов)
mv /etc/cron.weekly/sarg /etc/cron.weekly/0sarg
И, в окончание настройки, рестартим cron и apache.
Чтобы сформировать для проверки отчет вручную, наберите sarg-reports today (или manual, daily, weekly, monthly).
P.S. Для удобства можно воспользоваться модулем webmin для управления SARG.
30.04.2010
17.05.2010
18.05.2010
29.05.2010
01.10.2010
02.10.2010
06.12.2010
19.01.2011
11.02.2011
06.06.2011
08.06.2011
03.09.2011
09.02.2012
18.11.2013
20.11.2013
17.05.2014
26.02.2015