LightSquid — это утилита для сбора и анализа трафика прокси-сервера Squid. Она служит для сбора статистики работы пользователей, основываясь на логах прокси-сервера Squid и представляет собой набор из нескольких скриптов написанных на языке программирования perl.
Перед тем как начать установку и конфигурирование lightsquid, необходимо проверить, что на сервере были установлены и корректно работали Squid и Apache2.
Создаём каталог, где будет установлен lightsquid
mkdir /var/www/lightsquid
После чего скачиваем и распаковываем, в созданный каталог, последнюю версию lightsquid
wget http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
tar -zxf ~/lightsquid-1.8.tgz
cp ~/lightsquid-1.8 /var/www/lightsquid
Выставляем рекурсивно права 755 пользователю и группе www-data на каталог и его содержимое
chmod -R 755 /var/www/lightsquid
chown -R www-data:www-data /var/www/lightsquid
Делаем скрипты программы исполняемыми
chmod +x *.cgi
chmod +x *.pl
Ставим зависимые пакеты, без которых программа работать не будет (libgd-gd2-perl отвечает за показ графиков)
apt-get install perl libgd-gd2-perl
С установкой всё. Теперь приступим к настройке lightsquid:
Начнём с Apache. Для того, чтобы Apache правильно обрабатывал .cgi-скрипты отредактируем файл httpd.conf и приведём его к следующему виду:
nano /etc/apache2/httpd.conf
Alias /lightsquid /var/www/lightsquid
AddHandler cgi-script .cgi
AllowOverride All
Правим конфиг lightsquid
nano /var/www/lightsquid/lightsquid.cfg
Правим пути в секции GLOBAL VARIABLES
#path to additional `cfg` files
$cfgpath ="/var/www/lightsquid";
#path to `tpl` folder
$tplpath ="/var/www/lightsquid/tpl";
#path to `lang` folder
$langpath ="/var/www/lightsquid/lang";
#path to `report` folder
$reportpath ="/var/www/lightsquid/report";
#path to access.log
$logpath ="/var/log/squid";
#path to `ip2name` folder
$ip2namepath ="/var/www/lightsquid/ip2name";
В секции WEB VARIABLES выставляем нужный язык интерфейса. В данном случае русский.
$lang ="ru";
Закрываем и сохраняем конфиг. Теперь с помощью скрипта check-setup.pl можем проверить правильность сделанных настроек. Никаких ошибок быть не должно.
./check-setup.pl
Открываем файл realname.cfg и прописываем там IP пользователей и их реальные имена, которые будут отображаться в отчётах lightsquid
nano /var/www/lightsquid/realname.cfg
192.168.1.2 Sveta
192.168.1.4 Natasha
192.168.1.5 Rita
192.168.1.6 Dima
192.168.1.7 Vera
192.168.1.8 Anya
Теперь можно вручную сгенерировать отчеты и заодно проверить как работает lightsquid:
./lightparser.pl
lightparser.pl access.log.1 {gz|bz2}
lightparser.pl access.log.2 {gz|bz2}
lightparser.pl access.log.3 {gz|bz2}
Открываем браузер и вводим в адресной строке:
http://ip_вашего_сервера/lightsqiud
Для автоматизации генерирования отчётов добавляем в cron задание:
crontab -e
*/60 * * * * /var/www/lightsquid/lightparser.pl today
Отчёты будут автоматом генерироваться ежечасно. Вместо 60 можно выставить какое угодно значение в минутах.
Для ограничения доступа к серверу статистики по логину и паролю сделаем следующее:
Допустим, нам нужно сделать пользователя с именем lightsquid. Приводим файл .htaccess к следующему виду:
Options FollowSymLinks ExecCGI
DirectoryIndex index.cgi
AuthType Basic
AuthName "Private zone. Only for administrator!"
AuthUserFile /var/www/lightsquid/.htpasswd
require user lightsquid
Затем создаём файл .htpasswd
/usr/bin/htpasswd -c /var/www/lightsquid/.htpasswd
Добавляем пользователя
/usr/bin/htpasswd -n lightsquid
Дважды вводим пароль и полученный результат добавляем в файл .htpasswd
Возможные проблемы:
— Отчет пустой
Проверьте, пишет ли Squid логи
— Отчет не генерируется
Проверьте права доступа к папкам /var/log/squid и /var/www/lightsquid