Статистика прокси сервера Squid

Материал из СисадминВики (SysadminWiki.ru)
Перейти к: навигация, поиск

Журнальные файлы прокси-сервера Squid даже для небольших предприятий могут быть очень объёмны. Их разбор вручную малоэффективен, а ведение статистики или какого-либо учёта просто не возможны. Для этого используют вспомогательные программы. Мы рассмотрим три из них: Sarg, Calamaris и LightSquid.

Рано или поздно мы (системные администраторы) хотим (или нас заставляют) установить контроль над использованием Интернет-трафика. У меня пользователи периодически недоумённо осведомляются, на что истратилась их квота. Конечно, чаще всего они, не глядя, скачали какое-нибудь обновление, но бывают случаи, от них не зависящие. Так, например, несколько раз приходилось сталкиваться со злонамеренными самообновляющимися страницами.

Ясность частично можно внести и штатными средствами, используя команды cat и grep. Например, сделать выборку из журнала для конкретного IP адреса командой:

#cat /var/log/squid/access.log | grep 10.0.0.15 > /tmp/10.0.0.15.txt

а затем перенести файл на компьютер, где есть MS Excel, и там его просматривать.

Или воспользовавшись небольшими скриптами grab_ip_traffic.sh и parse_squid_log.pl получить туже информацию, но отфильтрованную и отсортированную по нужному полю, с преобразованым временем из unix формата в человеческий вид.

Так я и делал, пока не потребовалось проводить более серьёзный анализ и вести статистику.


Подготовительные работы

Прежде чем приступить к установке и рассмотрению возможностей вспомогательных программ, обговорим несколько моментов.

  • Ради универсальности процедуры установки программ под разные операционные системы (семейства Unix) будем устанавливать их из исходных кодов. На сайтах программ указано, где можно взять уже собранные пакеты для определённых ОС. По возможности лучше использовать их, так как в этом случае пакет регистрируется в системе, что весьма полезно при автоматическом обновлении ОС, для получения подробной информации об установленном пакете, для соблюдения зависимостей при установки новых пакетов и в массе других случаев. Примите во внимание, что при установке собранного пакета пути к файлам могут отличаться от указанных в статье.
  • Для просмотра отчётов через веб-интерфейс нам понадобится, соответственно, веб-сервер. Условимся отчёты хранить в каталоге /var/www/html/reports.
  • Calamaris и LightSquid написаны на Perl, поэтому он должен уже стоять в системе. Автор Calamaris рекомендует ставить самую последнюю версию, хотя и упоминает, что некоторые пользователи успешно использовали его программу на Perl 5.001. Требования к Perl для LightSquid не приводятся, так что от себя скажу, что на версии 5.8.7 всё работает отлично.
  • Ну и сам Squid (www.squid-cache.org), конечно, уже должен быть установлен, вести журнал в родном формате (что определяется в squid.conf опцией emulate_httpd_log off) и проводить ежедневную ротацию журналов, не сжимая архивы. Последнюю задачу лучше поручить программе logrotate, указав в файле /etc/logrotate.d/squid следующее:
/var/log/squid/access.log {
daily
rotate 6
copytruncate
nocompress
notifempty
missingok
}

… 
# далее описана ротация cache.log и store.log. Её не трогаем

а сам Squid освободить от этой обязанности, указав опцию logfile_rotate 0


Установка анализаторов

Всё, приступим. См. отдельные статьи Sarg, Calamaris и LightSquid


Заключение

У всех трёх программ есть настройки внешнего вида отчёта, графики. Все поддерживают русский язык. У каждой есть свои отличительные характеристики, заслуживающие внимания, и при наличии возможности можно установить все три, но если такой возможности (или желания) нет, то при выборе стоит учесть:

  1. нужны ли вам те или иные отчёты
  2. достаточно ли у вас дискового пространства, чтобы хранить все желаемые отчёты
  3. позволяет ли существующая нагрузка на процессор добавить генерацию всех желаемых отчётов. Для обработки 140 тысяч строк журнала на компьютере с процессором Pentium 4 с тактовой частотой 3GHz и с 1 Gb оперативной памяти потребовалось для всех трёх программ вместе при их последовательном запуске около 2,5 минут.


Напоследок хочу сказать, что, поискав в Интернете отклики по этим программам, вы обнаружите различные жалобы администраторов на их неудобство или даже частичную неработоспособность. Так, например, Sarg до сих пор останавливается на некоторых записях журнала, отказываясь создавать отчёт (благо, что такие записи у меня попадаются редко). Однако все три проекта довольно активно развиваются и недочёты исправляются, поэтому ставьте свежие версии программ и пользуйтесь!