====== SqStat - мониторинг пользовательской активности Squid ====== SqStat осуществляет мониторинг пользовательской активности в Squid, работает по протоколу cachemgr Версии ПО на момент написания заметки: * sqstat: 1.20 * squid: 3.3.8 ===== Установка ===== Качаем тут: http://samm.kiev.ua/sqstat/ Разворачиваем в папку веб-сервера ===== Настройка ===== Если стоит Apache - не забываем установить поддержку PHP # apt-get install libapache2-mod-php5 Правим конфиг Apache /etc/apache2/sites-enabled/000-default.conf: DirectoryIndex sqstat.php order deny,allow allow from 192.168.0.1/24 Настраиваем Squid: Вносим дополнения в squid.conf acl manager proto cache_object acl webserver src 192.168.0.1 http_access allow webserver manager Настраиваем SqStat, файл /sqstat/config.inc.php: $squidhost[0]="192.168.0.1"; $squidport[0]=3128; $cachemgr_passwd[0]=""; $resolveip[0]=true; ===== Траблшутинг ===== Взято отсюда: http://kidun.ru/index.php/component/content/article?id=165 После обновления Squid до версии 3.2 внезапно перестал работать мониторинг пользовательской активности SqStat. Несмотря на то, что в конфигурации прописан корректно доступ к списку manager, sqstat упорно не видел ответа от сервиса Squid, выдавая следующую ошибку: SqStat error Error (1): Cannot get data. Server answered: HTTP/1.1 200 OK Требуется наложения патча. Что он делает: * Меняет HTTP/1.0 на HTTP/1.1 * Изменяет формат получаемых данных * Время отображается в 24-х часовом формате * Отображает скорость в Kb/s 107c107 < if($raw[0]!="HTTP/1.0 200 OK"){ --- > if($raw[0]!="HTTP/1.1 200 OK"){ 131,132c131,132 < if(substr($v,0,5)=="peer:") $parsed["con"][$connection]["peer"]=substr($v,6); < if(substr($v,0,3)=="me:") $parsed["con"][$connection]["me"]=substr($v,4); --- > if(substr($v,0,7)=="remote:") $parsed["con"][$connection]["remote"]=substr($v,8); > if(substr($v,0,6)=="local:") $parsed["con"][$connection]["local"]=substr($v,7); 178c178 < $ip=substr($v["peer"],0,strpos($v["peer"],":")); --- > $ip=substr($v["remote"],0,strpos($v["remote"],":")); 189c189 < $ip=ip2long(substr($v["peer"],0,strpos($v["peer"],":"))); --- > $ip=ip2long(substr($v["remote"],0,strpos($v["remote"],":"))); 209c209 < 'Auto refresh: sec. Created at: '.date("h:i:s d/m/Y").'
'. --- > 'Auto refresh: sec. Created at: '.date("H:i:s d/m/Y").'
'. 253c253 < $curr_speed = ($con['bytes'] - $was_size) / 1024 / $delta; --- > $curr_speed = ($con['bytes'] - $was_size) / 1024*8 / $delta; 256c256 < $curr_speed = $con['bytes'] / 1024; --- > $curr_speed = $con['bytes'] / 1024*8; 260c260 < $avg_speed = $con['bytes'] / 1024; --- > $avg_speed = $con['bytes'] / 1024*8;
Скачать файлом: {{:software:squid:sqstat_squid_3.3.8.patch|}} Применить патч: # patch sqstat.class.php sqstat_squid_3.3.8.patch {{tag>squid sqstat patch monitoring}}