Наверняка каждому системному администратору приходилось отвечать на вопросы пользователей «почему тормозит интернет», словами что кто-то забил канал своими бесконечными скачиваниями музыки и видео.
Способов выяснить, кто это делает в Linux вагон и маленькая тележка. В данной статье я расскажу как можно с помощью PHP скрипта SqStat, вести мониторинг в реальном времени за всеми активными соединениями пользователей работающих через прокси сервер Squid.
Для начала скачаем SqStat c сайта разработчика.
Распакуем файлы в корень директории с которой ваш веб сервер Apache сможет запустить этот скрипт.
Я распаковал его в папку
/ var /www/html/sqstat
Создадим файл config.inc.php скопировав его из файла config.inc.php.defaults
И приступаем к редактированию:
/* Глобальные настройки */
$use_js=true; // Использование JavaScript для инструментов HTML
// Максимальная длина URL для отображения в колонке таблицы URI
DEFINE("SQSTAT_SHOWLEN",60);
/* Параметры прокси-сервера */
/* Прокси-сервер Squid IP-адрес или имя хоста */
$squidhost[0]="127.0.0.1";
/* Порт Squid прокси-сервера */
$squidport[0]=3128;
/* сachemgr_passwd в squid.conf. Оставьте пустым, чтобы отключить разрешение */
$cachemgr_passwd[0]="";
/* Преобразовывать IP адреса пользователей или показывать только номера [true|false] */
$resolveip[0]=false;
/* Раскомментируйте следующую строку, если вы хотите использовать хосты, как файл.
See hosts.txt.dist. */
// $hosts_file[0]="hosts.txt"
/* Группа пользователей с именем хоста - "host" или пользователя - "username".
Имя пользователя работать только с squid 2.6 + */
$group_by[0]="host";
/* Вы можете указать более одного прокси-сервера в файле конфигурации, например: */
// $squidhost[1]="192.168.0.2";
// $squidport[1]=3129;
// $cachemgr_passwd[1]="secret";
// $resolveip[1]=true;
// $hosts_file[1]="otherhosts.txt"
?>
Для простейшей конфигурации достаточно поставить адрес и порт своего прокси сервера (в своем случае я заменил 127.0.0.1 на свой 192.168.210.1 и оставил без изменения 3128).
Теперь нам нужно подредактировать файл Squid:
vim /etc/squid/squid.conf
Найдем и добавим в конфиге следующее:
acl manager proto cache_object
acl webserver src 192.168.210.1/255.255.255.0
http_access allow manager webserver
http_access deny manager
где, 192.168.210.1/255.255.255.0 — IP адрес вашего прокси сервера
Перезагрузм squid
service squid restart
или
/etc/init.d/squid restart
И на этом в общем то всё. Можно зайти браузером с любой рабочей станции на ваш сервер (в моём случае с IP 192.168.210.1) указав адрес:
http://192.168.210.1/sqstat/sqstat.php
Для удобства вы можете создать символическую ссылку на файл sqstat.php в виде index.php, что бы в адресе явно не указывать конечный файл.
ln -s sqstat.php index.php
И теперь мы с браузера рабочей станции можем посмотреть статистику по адресу
http://192.168.210.1/sqstat/
не заканчивая адрес файлом sqstat.php
Вот что получилось
В статистике отображается IP адрес клиента, сайт который он в данный момент просматривает и скорость загрузки.
Работа напильником
Изменение 12-часового формата на 24-часовый.
В файле /var/www/html/sqstat/sqstat.class.php в 209 строке изменим значение «h:i:s d/m/Y» на «H:i:s d/m/Y».
Отображение скорости в Kb/s, а не в KB/s.
В файле /var/www/html/sqstat/sqstat.class.php заменяем «KB» на «Kb» в строках 280, 281, 288 (два изменения) и 297. Теперь еще нужно, чтобы и перевод из байтов в биты был выполнен корректно. Для этого в файле /var/www/html/sqstat/sqstat.class.php заменяем «1024» на «1024*8» в строках 253, 258 и 260.
Источник: http://a.dmin.pro/?p=3391
|