На данный момент имеем полностью настроенный Squid, но расслабляться пока еще рано. В одно прекрасное утро начальство захочет узнать, на каких сайтах бывают сотрудники компании, и сколько времени они там проводят.
Всю нужную информацию можно найти в логах сквида, но считать вручную вроде:
$ sudo tail -f /var/log/squid/access.log | awk ‘{print$3 ” ” $8 ” ” $7}’
Хотя и вполне реально, но уж очень не удобно, да и не нужно. Для этого прокси-сервера написано невероятное количество анализаторов логов. Одним из самых популярных решений является SARG (Squid Analysis Report Generator), который выдает подробную статистику по пользователям. На сайте проекта sarg.sf.net, кроме исходных текстов, можно найти пакеты для большого количества систем: Gentoo, RedHat/Fedora, Debian, Slackware, SUSE, *BSD, Mac OS X и даже Windows с OS/2. Хотя в репозитариях пакетов большинства дистрибутивов все, что нужно, уже есть. Для просмотра отчетов SARG нам понадобится веб-сервер. В Ubuntu/Debian вводим:
$ sudo apt-get install sarg apache2
В Ubuntu настройки Apache можно не трогать, все будет работать с параметрами по умолчанию. В различных дистрибутивах и операционных системах файлы могут быть помещены в разные каталоги. В Ubuntu место дислокации – /etc/squid, конфигурационный файл называется sarg.conf.
$ sudo mcedit /etc/squid/sarg.conf # Указываем язык, возможные значения: Russian-koi8, # Russian_UTF-8, Russian-windows1251 language Russian_UTF-8 charset Cyrillic # Файл со статистикой, обрати внимание, что в некоторых # дистрах каталоги для Squid 3.0 называются squid3 access_log /var/log/squid3/access.log # Включаем построение графиков graphs yes graph_days_bytes_bar_color green # При необходимости можно ограничить просмотр отчетов # password /etc/squid/sarg.passwd # Каталог, в который помещаются отчеты output_dir /var/www/squid-reports # Сортировка юзеров в выводе по USER CONNECT BYTES TIME topuser_sort_field BYTES reverse user_sort_field BYTES reverse # Установка лимита в мегабайтах, пользователи, превысившие его, попадают в файл блокировок # per_user_limit /etc/squid/sarg.user-deny 300 # Тип отчета, включаем все report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads # Для удобства можно конвертировать логины и IP-адреса в реальные имена # (файл должен содержать записи вида “userid/IP-address имя”) usertab /etc/squid/sarg.usertab
Если output_dir находится вне корневого каталога Apache, в apache2.conf необходимо создать алиас с указанием пути и дать нужные права. К сожалению, при помощи per_user_limit можно указать лимит один на всех, без учета пользователей и групп.
Создание отчетов производится при помощи скрипта /usr/sbin/sarg-reports, который запускается при помощи cron:
$ sudo crontab –e 00 08-18/1 * * * sarg-reports today 00 00 * * * sarg-reports daily 00 01 * * 1 sarg-reports weekly 30 02 1 * * sarg-reports monthly
Теперь открываем браузер и заходим на страницу отчетов.
В последнее время вместо SARG многие рекомендуют использовать Free-SA (free-sa.sf.net).
Он более легок, имеет большую скорость создания отчетов, в перспективе кроме Squid, Postfix, Qmail и CGP будут поддерживаться журналы других серверов. Еще один быстрый конкурент – (lightsquid.sf.net) – прост в установке и по сравнению с SARG занимает меньше места на жестком диске.