SqStat - мониторим трафик Squid-а в режиме реального времени

  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:267649782e9e64165db87a4a0cb85447' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\"><strong>SqStat</strong> - утилита для просмотра в режиме реального времени, кто и что гоняет через Squid. Да еще и с веб-интерфейсом... Однозначно - нужно &quot;пощупать&quot;.</p>\n<p class=\"rtejustify\">Идем в порты и даем команду на инсталляцию:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cd /usr/ports/www/sqstat &amp;&amp; make install clean &amp;&amp; rehash</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Установка прошла моментально,&nbsp;я даже удивился этой скорости. По завершению инсталляции вывелась инструкция что и к чему:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre>\n- Copy file config.inc.php.defaults to config.inc.php, edit\n config.inc.php to specify your squid proxy server IP and port.\n\n</pre><pre>\n- Set up squid:\n\n</pre><pre>\nacl manager proto cache_object\n# replace 10.0.0.1 with your webserver IP\nacl webserver src 10.0.0.1/255.255.255.255\nhttp_access allow manager webserver\nhttp_access deny manager\n\n</pre><pre>\n- Set up apache web server:\n\n</pre><pre>\nAlias /sqstat &quot;/usr/local/share/sqstat/&quot;\n</pre></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">&nbsp;Что ж... Выполним необходимые пункты. Скопируем <strong>config.inc.php.defaults</strong> в <strong>config.inc.php</strong>:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cp /usr/local/share/sqstat/config.inc.php.defaults /usr/local/share/sqstat/config.inc.php</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Посмотрим, что внутри... Аха! Можно поковыряться с настройками. В результате нехитрых манипуляций в редакторе,&nbsp;появился следующий конфиг:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<div># <strong>cat /usr/local/share/sqstat/config.inc.php</strong></div>\n<div>\n &lt;?php</div>\n<div>\n /* Общие настройки */</div>\n<div>&nbsp;</div>\n<div>$use_js=true; // Использовать java-скрипт для HTML</div>\n<div>// Максимальная длина URL для отображения в URI<br />\n DEFINE(&quot;SQSTAT_SHOWLEN&quot;,60);</div>\n<div>\n /* Настройка proxy&nbsp; */</div>\n<div>&nbsp;</div>\n<div>/* IP-адрес прокси-сервера или хостнейм */<br />\n $squidhost[0]=&quot;127.0.0.1&quot;;<br />\n /* Порт прокси-сервера */<br />\n $squidport[0]=3128;<br />\n /* cachemgr_passwd в squid.conf. Оставить пустым для отключения авторизации */<br />\n $cachemgr_passwd[0]=&quot;&quot;;<br />\n /* Резолвить пользовательские IP-адреса или нет [true|false] */<br />\n $resolveip[0]=false;<br />\n /* Расскоментируйте следующую строку, если хотите использовать hosts-like файл.<br />\n &nbsp;&nbsp; Смотрите hosts.txt.dist. */<br />\n // $hosts_file[0]=&quot;hosts.txt&quot;<br />\n /* Группировать пользователей по имени хоста - &quot;host&quot; или по имени пользователя - &quot;username&quot;.<br />\n &nbsp;&nbsp; По имени пользователя работает только с with squid 2.6+ */<br />\n $group_by[0]=&quot;host&quot;;</div>\n<div>&nbsp;</div>\n<div>?&gt;<br />\n &nbsp;</div>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Поскольку я использую редиректор&nbsp;SAMS-а, то в конец&nbsp;squid.conf&nbsp;необходимо добавить такую строку (сразу после параметра redirect_program):</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p><span style=\"color: #000000\">redirector_access deny localhost</span></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Строки, которые советовал прописать SqStat&nbsp;и так присутствовали,&nbsp;так что на том редактирование squid.conf&nbsp;прекращаем.</p>\n<p class=\"rtejustify\">Добавляем в конфигурационный файл Apache следующий блок:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>Alias /sqstat &quot;/usr/local/share/sqstat/&quot;<br />\n &lt;Directory /usr/local/share/sqstat/&gt;<br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DirectoryIndex sqstat.php<br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order deny,allow<br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allow from all<br />\n &lt;/Directory&gt;</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Реконфигурируем squid и apache:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>apachectl graceful<br />\n </strong># <strong>squid -k reconfigure</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">&nbsp;Кажется на этом все... Набиваем в браузере строку <a href=\"http://ip_servera/sqstat/\"><span style=\"color: #ff0000\"><strong>http://IP_SERVERA/sqstat/</strong></span></a> и наслаждаемся результатами проделанной работы:</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"\" href=\"/files/imagepicker/1/sqstat.png\"><img alt=\"Image\" src=\"/files/imagepicker/1/thumbs/sqstat.png\" /></a></p>\n<p class=\"rtecenter\">&nbsp;</p>\n<p class=\"rtecenter\"><strong>Работа напильником</strong></p>\n<p class=\"rtejustify\"><strong>Изменение 12-часового формата на 24-часовый.</strong> <br />\nВ файле <strong>/usr/local/share/sqstat/sqstat.class.php</strong> в <strong>209</strong> строке изменим значение &quot;<strong>h:i:s d/m/Y</strong>&quot; на &quot;<strong>H:i:s d/m/Y</strong>&quot;.</p>\n<p class=\"rtejustify\"><strong>Отображение скорости в Kb/s, а не в KB/s</strong>.<br />\nВ файле <strong>/usr/local/share/sqstat/sqstat.class.php</strong>&nbsp;заменяем &quot;<strong>KB</strong>&quot; на &quot;<strong>Kb</strong>&quot; в строках <strong>280</strong>, <strong>281</strong>, <strong>288</strong> (два изменения) и&nbsp;<strong>297</strong>. Теперь еще нужно,&nbsp;чтобы и перевод из байтов в биты был выполнен корректно. Для этого в&nbsp; файле <strong>/usr/local/share/sqstat/sqstat.class.php</strong>&nbsp;заменяем &quot;<strong>1024</strong>&quot; на &quot;1024*8&quot; в строках <strong>253</strong>, <strong>258</strong> и <strong>260</strong>.</p>\n', created = 1767357221, expire = 1767443621, headers = '', serialized = 0 WHERE cid = '2:267649782e9e64165db87a4a0cb85447' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767357221, expire = 1767443621, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767357221, expire = 1767443621, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другуPDF version

SqStat - утилита для просмотра в режиме реального времени, кто и что гоняет через Squid. Да еще и с веб-интерфейсом... Однозначно - нужно "пощупать".

Идем в порты и даем команду на инсталляцию:

# cd /usr/ports/www/sqstat && make install clean && rehash

Установка прошла моментально, я даже удивился этой скорости. По завершению инсталляции вывелась инструкция что и к чему:

- Copy file config.inc.php.defaults to config.inc.php, edit
  config.inc.php to specify your squid proxy server IP and port.

- Set up squid:

acl manager proto cache_object
# replace 10.0.0.1 with your webserver IP
acl webserver src 10.0.0.1/255.255.255.255
http_access allow manager webserver
http_access deny manager

- Set up apache web server:

Alias /sqstat "/usr/local/share/sqstat/"

 Что ж... Выполним необходимые пункты. Скопируем config.inc.php.defaults в config.inc.php:

# cp /usr/local/share/sqstat/config.inc.php.defaults /usr/local/share/sqstat/config.inc.php

Посмотрим, что внутри... Аха! Можно поковыряться с настройками. В результате нехитрых манипуляций в редакторе, появился следующий конфиг:

# cat /usr/local/share/sqstat/config.inc.php
<?php
/* Общие настройки */
 
$use_js=true; // Использовать java-скрипт для HTML
// Максимальная длина URL для отображения в URI
DEFINE("SQSTAT_SHOWLEN",60);
/* Настройка proxy  */
 
/* IP-адрес прокси-сервера или хостнейм */
$squidhost[0]="127.0.0.1";
/* Порт прокси-сервера */
$squidport[0]=3128;
/* cachemgr_passwd в squid.conf. Оставить пустым для отключения авторизации */
$cachemgr_passwd[0]="";
/* Резолвить пользовательские IP-адреса или нет [true|false] */
$resolveip[0]=false;
/* Расскоментируйте следующую строку, если хотите использовать hosts-like файл.
   Смотрите hosts.txt.dist. */
// $hosts_file[0]="hosts.txt"
/* Группировать пользователей по имени хоста - "host" или по имени пользователя - "username".
   По имени пользователя работает только с with squid 2.6+ */
$group_by[0]="host";
 
?>
 

Поскольку я использую редиректор SAMS-а, то в конец squid.conf необходимо добавить такую строку (сразу после параметра redirect_program):

redirector_access deny localhost

Строки, которые советовал прописать SqStat и так присутствовали, так что на том редактирование squid.conf прекращаем.

Добавляем в конфигурационный файл Apache следующий блок:

Alias /sqstat "/usr/local/share/sqstat/"
<Directory /usr/local/share/sqstat/>
        DirectoryIndex sqstat.php
        Order deny,allow
        Allow from all
</Directory>

Реконфигурируем squid и apache:

# apachectl graceful
# squid -k reconfigure

 Кажется на этом все... Набиваем в браузере строку http://IP_SERVERA/sqstat/ и наслаждаемся результатами проделанной работы:

Image

 

Работа напильником

Изменение 12-часового формата на 24-часовый.
В файле /usr/local/share/sqstat/sqstat.class.php в 209 строке изменим значение "h:i:s d/m/Y" на "H:i:s d/m/Y".

Отображение скорости в Kb/s, а не в KB/s.
В файле /usr/local/share/sqstat/sqstat.class.php заменяем "KB" на "Kb" в строках 280, 281, 288 (два изменения) и 297. Теперь еще нужно, чтобы и перевод из байтов в биты был выполнен корректно. Для этого в  файле /usr/local/share/sqstat/sqstat.class.php заменяем "1024" на "1024*8" в строках 253, 258 и 260.

Ваша оценка: Нет Средняя: 4.4 (9 голосов)

Вставай, Україно!

Литература

А "без окон, без дверей" по-английски будет "ноу Виндоус, ноу Гейтс"?