====== 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}}