Павел Малахов
Журнальные файлы прокси-сервера Squid даже для небольших предприятий
могут быть очень объёмны. Разбирать их вручную малоэффективно, а вести
статистику или учёт просто невозможно. Для этого существуют вспомогательные
программы.
Рано или поздно мы (системные администраторы) хотим (или нас
заставляют) установить контроль над использованием интернет-трафика. У меня
пользователи периодически недоумённо осведомляются, на что истратилась их
квота. Чаще всего они не глядя скачали какое-нибудь обновление, но бывают
случаи, от них не зависящие. Например, не отвечал сервер mail.ru,
а его агенты, пытаясь установить с ним связь, «съедали» у некоторых
пользователей большую часть их скромной квоты. Приходилось несколько раз
сталкиваться со злонамеренными самообновляющимися страницами. Ясность
частично можно внести и штатными средствами, используя команды cat и grep.
Например, сделать выборку из журнала для конкретного IP-адреса командой:
# cat /var/log/squid/access.log
| grep 10.0.0.15 > /tmp/10.0.0.15.txt
а затем перенести файл на компьютер, где есть MS Excel, и там его
просматривать. Так я и делал, пока не потребовалось проводить более серьёзный
анализ и вести статистику.
Подготовительные работы
Ради универсальности процедуры установки программ под разные операционные
системы (семейства 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.