Не так давно пришлось мне столкнуться с одной страшной проблемой. На факультете иностранных языков, где я по несчастью работаю админом, прилось поднять систему журналирования трафика и прокси сервер. С одной стороны это, казалось бы, не так уж и сложно. Но возникла следующая проблема — к бесплатному прокси-серверу squid не удалось найти удобной и быстрой системы учёта трафика. Поэтому такую систему я написал сам, и теперь предлагаю её миру, если кому-то вдруг понадобится.
Продукт — AlterVision Squid Traffic Analizer
Платформа — любая
Реализовано на языке — php с использованием базы данных mysql
Скачать — http://www.box.net/shared/hc8w39oe8o
Подробности установки, настройки и работы
Система основана на анализе логов прокси-сервера squid. Сам прокси оставляет очень подробную информацию о запросах пользователей в access.log, этим логом мы и пользуемся.
Раз в сутки, желательно в тот момент, когда сеть уже не используется (у меня это полночь каждого дня) запускается небольшой php-скрипт, который анализирует текущие логи сервера за день, отгружает их в базу данных и запускает ротэйтинг логов. Таким образом, статистика легко оказывается в базе до того, как лог-файл жиреет до неперевариваемых размеров.
Для реализации запуска по времени в Windows имеется бесплатная программа nnCronLite. Одна из версий лежит в папке со статистом.
Для просмотра логов используется веб-интерфейс. Реализовать его можно на сервере Apache, с установленными модулями php и базой данных mysql. Через веб-интерфейс легко просмотреть текущие логи сервера — посещение сайтов по ip-адресам, трафик за день, неделю, месяц и полгода. Кроме того, есть база ip-адресов, она легко конфигурируется через веб-интерфейс phpMyAdmin или схожей утилиты. Средства редактирования базы ip-адресов в веб-интерфейсе статиста нет — ибо лень …
Процесс установки
Установка не занимает много времени.
1. Прежде всего, скачиваем сам прокси-сервер squid. Добрый Гугль всегда поможет и отыскать последнюю версию, и ознакомиться с огромным количеством инструкций по установке и конфигурированию. Прежде чем продолжать, убедитесь, что прокси-серер настроен правильно и работает без перебоев.
2. Устанавливаем web-сервер. Процедура установки зависит от платформы. Под Windows можно воспользоваться даже Denwer-ом.
3. Распаковываем файлы статиста. Архив помещаем в www-директорию сервера.
4. Залезаем в файл statist.php — здесь нам нужно указать полный путь к файлу логов, и настроить параметры соединения с сервером базы данных.
$filename = 'd:/squid/logs/access.log'; $sql_server = 'localhost'; $sql_dbname = 'statist'; $sql_dbuser = 'root'; $sql_passwd = '';
5. Конфигурируем cron. Для Windows требуется сперва установить nnCronLite. Настройки делаются в cron.tab. У меня там стоит строчка:
0 0 * * * "d:/php/php.exe d:/server/home/statist/www/statist.php"
Эта строчка отвечает за запуск статиста в полночь каждый день. Кроме этого, в автозапуске системы числится bat-файл со схожим текстом:
d:/php/php.exe d:/server/home/statist/www/statist.php
Таким образом, если сервер отключается на некоторое время и не обновляет статистику в полночь, то она будет обнвлена при запуске.
Внимание! Следите за тем, чтобы mysql-демон запускался до того, как выполнится эта команда!
6. Конфигурируем веб-интерфейс. Для этого редактируем файл core/config.php и устанавливаем наши настройки сервера базы данных.
В файле core/settings.php проводим настройки администраторов:
$users = array ( "admin" => array("user_login" => "admin", "user_pass" => md5('admin')), "user" => array("user_login" => "user", "user_pass" => md5('user')), "medved" => array("user_login" => "medved", "user_pass" => md5('preved')), );
Данные в этой строке меняем на интересующие нас. Администраторов может быть сколько угодно.
Чтобы настроить типы машин, лезем в языковой файл lang_russian.php и редактируем блок кода:
'levels' => array( 'admin' => 'Администраторские компьютеры и сервер', 'prepod' => 'Преподаватели и кафедры', 'student' => 'Студенты', 'reserved' => 'Дополнительные адреса - ограниченый доступ', 'restrict' => 'DHCP-адреса - закрытый доступ', ),
7. Статист готов к работе!
Данная программа распространяется бесплатно. Условие только одно — если Вы вносите какие-либо доработки и изменения в программу, обязательно уведомите автора!
Если будут возникать какие-либо вопросы, обращайтесь! Контактные данные указаны на сайте.