LightSquid: Анализ трафика прокси-сервера SquidДля доступа в интернет многие организации используют прокси сервер
Squid. В этих случаях практически всегда squid установлен в
операционной системе Linux (FreeBSD). И в большинстве случаев
необходимо, хотя бы для примерного контроля ситуации, знать, кто, куда
и сколько J. Описываемая утилита для сбора и анализа
трафика прокси-сервера Squid проста в установке, настройке и
использовании. Это LightSquid.
LightSquid
Дом. страница: http://lightsquid.sourceforge.net/
Для установки требуются:
- Perl
- http server (Apache, lighthttpd, etc)
- Squid
- Cron
Perl установлен в большинстве систем и так (значит, скорее всего, ставить вам его не придется).
Squid уже установлен (а как же иначе!)
Cron тоже есть в любой unix-like системе.
Итак, необходим только http-сервер, наиболее популярным из которых, является Apache.
Установка Apache
Установка LightSquid
Офиц. страница руководства: http://lightsquid.sourceforge.net/Installs.html Скачиваем последнюю версию дистрибутива LightSquid. (Все команды выполняем из под root) Распаковываем дистрибутив в каталог web-сервера
Переходим в каталог lightsquid
cd /var/www/html/lightsquid |
Делаем исполняемыми сценарии языка perl в директории с распакованным дистрибутивом.
chmod +x *.cgi chmod +x *.pl |
Меняем владельца файлов на то имя, от имени которого запускается Apache.
chown -R www-data:www-data *
|
Теперь нам надо добавить в файл конфигурации (/etc/apache2/sites-available/default) веб сервера Apache эти строки. Разрешаем выполнять скрипты на нашем локальном сайте
<Directory "/var/www/html/lightsquid"> AddHandler cgi-script .cgi AllowOverride All </Directory>
|
Рестартуем Apache для учета наших изменений
/etc/init.d/apache2 restart
|
Теперь нам необходимо проверить правильность нашей установки:
# ./check-setup.pl LightSquid Config Checker, (c) 2005 Sergey Erokhin GNU GPL
LogPath : /var/log/squid reportpath: /var/www/html/lightsquid/report Lang : /var/www/html/lightsquid/lang/ru Template : /var/www/html/lightsquid/tpl/base Ip2Name : /var/www/html/lightsquid/ip2name/ip2name.simple
all check passed, now try access to cgi part in browser
|
Если у Вас тот же результат, следовательно Вы сдали всё правильно.
Для получения статистики необходимо выполнить ./lightparser.pl который сформирует отчеты в .../lightsquid/report/ каталог, после чего зайдя браузером по адресу, где у
вас расположен lightsquid, (в моем случае такой адрес) http://IP/html/lightsquid/ можно лицезреть созданные отчеты.
Для автоматического формирования отчетов, можно прописать запуск lightparser скрипта в crontab, пример запускает импорт лог-файлов каждые 55 минут:
# crontab -e */55 * * * * /var/www/html/lightsquid/lightparser.pl |
Если лог-файл не большой, и сервер довольно шустрый, можете уменьшить интервал импорта логов.
Внимание! Не устанавливайте интервал менее 10 мин
Вот и все!
lightsquid.cfg :
# -------------------- Глобальные переменные ---------------------------
#путь к `cfg` файлам $cfgpath ="/var/www/html/lightsquid"; #путь `tpl` папке - шаблонам $tplpath =" /var/www/html /lightsquid/tpl";
#путь к `lang` папке - языки $langpath =" var/www/html /lightsquid/lang";
#путь к `report` папке - отчеты $reportpath =" /var/www/html /lightsquid/report"; #путь к access.log - где логи squid, oops ... $logpath ="/var/log/squid/"; #путь к `ip2name` папке - преобразование ip в имена $ip2namepath =" /var/www/html /lightsquid";
#путь к `lockfile` ;-) $lockpath =$reportpath;
# если lockfile старше $maxlocktime секунд, удалить старый lock file. $maxlocktime = 30*60;
# -------------------- LightParser переменные --------------------------- #lightsquid поддерживает 2 типа логов : родной и httpd #если родной squid-кий формат - должно быть 0 #если EmulateHttpdLog ON - выставте 1 # $squidlogtype = 0;
#если вы хотите не учитывать статистику с некоторых сайтов - измените переменную #Предупреждение !!!, не оставляйте эту переменную пустой !!! #example, if you want skip LOCAL site, put it here #$skipurl = "zdd.com|192\.168\.1\.|cnn.com"; $skipurl = "zzz\.zzz";
#Использование ip2name - для преобразования ip в имена
$ip2name="simple";
#используется если нада конвертить text в число - при EmualteHttpdLog %month2dec = ( Jan => 1, Feb => 2, Mar => 3, Apr => 4, May => 5,Jun => 6, Jul => 7, Aug => 8, Sep => 9, Oct => 10, Nov => 11,Dec => 12);
# -------------------- Общие (Парсер & Веб) переменные ---------------------- $timereport = 1;
# -------------------- Веб переменные---------------------------------------
# язык (lдоступные: bg,eng,fr,hu,it,pt_br,ru,sp) $lang ="ru";
#имя html шаблонов #смотри `tpl/$templatename/` $templatename ="base"; #$templatename ="ric"; #$templatename ="base.css";
#определенные типы вывода чисел #fine 123456789 -> 123,456,789 #class 123456789 -> 117.7 G $DecOutType="class";
# = " " -> 12 345 678 # = "," -> 12,345,678 # = "" -> 12345678 $decdelimiter = " ";
#если надо Group режим установите =1 $showgrouplink = 1;
#если не 0 - выглядит так "01. Group1", если 0 - "Group1" $showgroupid = 1;
$showoversizelink = 1;
#использование .realname файлов. См Дальше $userealname = 1;
#большие файлы - с 500Мб $bigfilelimit = 500*1024*1024;
#лимит для пользователей - 1000Мб $perusertrafficlimit = 1000*1024*1024;
# недельный режим отображения # both - select sunday & monday # monday - only monday $weekendmode="both";
#как много сайтов показывать TopSites отчете $topsiteslimit = 500;
#как много сайтов показывать в user time отчете $usertimelimit = 500;
#если вам надо графический отчет установите = 1 #WARNING !!!, нужна, GD.PM , ту которую мы отметили перед сборкой!!! #запустите check-setup.pl для определения библиотеки !!!! $graphreport = 1;
#максимальное значение на графике # для пользователя за месяц (0.05*(...) = 50mb) $graphmaxuser=2*(1024*1024*1024); #для всех пользователей за месяц (1.05*(...) = 1 Gb) $graphmaxall =2*(1024*1024*1024);
# темы для графиков, доступные :"orange","blue","green","yellow","brown","red" $barcolor="blue";
|
Обьединить пользователей в группы и смотреть отчёты по группе # ee /var/www/html /lightsquid/group.cfg 192.168.0.63 01 gx-grp 192.168.0.197 02 nata-grp
|
после изменений перепарсите : # /var/www/html/ lightsquid/lightparser.pl # cd /var/www/html /lightsquid/ && ./check-setup.pl
|
|