Четверг, 28.03.2024, 15:51
Приветствую Вас Гость | RSS

Мои записки о Линукс

Меню сайта
Наш опрос
Что вы хотите видеть на этом сайте?
Всего ответов: 228
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа



Яндекс цитирования



Фриланс работа на Freelancehunt.com

Главная » 2010 » Ноябрь » 11 » Мониторинг Squid с помощью скрипта SqStat
13:39
Мониторинг Squid с помощью скрипта SqStat


Наверняка каждому системному администратору приходилось отвечать на вопросы пользователей "почему тормозит интернет", словами что кто-то забил канал своими бесконечными скачиваниями музыки и видео.
Способов выяснить, кто это делает в Linux вагон и маленькая тележка. В данной статье я расскажу как можно с помощью PHP скрипта SqStat, вести мониторинг в реальном времени за всеми активными соединениями пользователей работающих через прокси сервер Squid.

Для начала скачаем SqStat c сайта разработчика  http://samm.kiev.ua/sqstat/sqstat-1.20.tar.gz либо непосредственно с моего сайта (скачать).

Распакуем файлы в корень директории с которой ваш веб сервер Apache сможет запустить этот скрипт.
Я распаковал его в папку

/var/www/html/sqstat



Создадим файл config.inc.php скопировав его из файла config.inc.php.defaults

cp config.inc.php.defaults config.inc.php

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


/* Глобальные настройки */
 
$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:

/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

И на этом в общем то всё. Можно зайти браузером с любой рабочей станции на ваш сервер (в моём случае с 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 адрес клиента, сайт который он в данный момент просматривает и скорость загрузки.

При перепечатке указание ссылки на http://centos.moy.su обязательно

Просмотров: 25028 | Добавил: 63rS3rK | Теги: Настройка SqStat, мониторинг Squid, SqStat в CentOS, прокси сервер в Linux | Рейтинг: 5.0/2
Всего комментариев: 8
8 Валерий  
0
если такое
SqStat error
Error (1): Cannot get data. Server answered: HTTP/1.1 200 OK
то
if($raw[0]!="HTTP/1.0 200 OK"){
надо было заменить на
if($raw[0]!="HTTP/1.1 200 OK"){

7 Jeanne  
0
What a joy to find soemnoe else who thinks this way.

6 Владимир  
0
http_access allow manager webserver

Вот это часть написана ниже вот этого.

http_access deny manager

Поэтому и не пущает.

5 Ярик  
0
О! Давно искал что-то похожее, да все ничего толкового не попадалось. На двух серваках сижу кто куда лезет.

4 ghost  
0
# Squid normally listens to port 3128
http_port 172.22.22.81:3128

Вот как в конфиге, порт 3128 был по умолчанию его и оставил.


3 ghost  
0
Вот параметры:
acl our_networks src 172.22.22.0/24 - было, поставил acl our_networks src 172.22.22.81/24
acl manager proto cache_object
acl webserver src 172.22.22.81/255.255.255.0
http_access allow manager webserver
http_access deny manager
---------
squid ругается на класс сети и маску
service squid restart
Stopping squid: 2011/02/15 17:56:40| aclParseIpData: WARNING: Netmask masks away part of the specified IP in '172.22.22.81/24'
2011/02/15 17:56:40| aclParseIpData: WARNING: Netmask masks away part of the specified IP in '172.22.22.81/255.255.255.0'
-------------
После замены та же ошибка :-(

2 ghost  
0
Вот тело скрипта, изменил только ip адрес машина на которой живет squid:

<?php
/* global settings */

$use_js=true; // use javascript for the HTML toolkits

// Maximum URL length to display in URI table column
DEFINE("SQSTAT_SHOWLEN",60);

/* proxy settings */

/* Squid proxy server ip address or host name */
$squidhost[0]="172.22.22.81";
/* Squid proxy server port */
$squidport[0]=3128;
/* cachemgr_passwd in squid.conf. Leave blank to disable authorisation */
$cachemgr_passwd[0]="";
/* Resolve user IP addresses or print them as numbers only [true|false] */
$resolveip[0]=false;
/* uncomment next line if you want to use hosts-like file.
See hosts.txt.dist. */
// $hosts_file[0]="hosts.txt"
/* Group users by hostname - "host" or by User - "username". Username work only
with squid 2.6+ */
$group_by[0]="host";

/* you can specify more than one proxy in the configuration file, e.g.: */
// $squidhost[1]="192.168.0.2";
// $squidport[1]=3129;
// $cachemgr_passwd[1]="secret";
// $resolveip[1]=true;
// $hosts_file[1]="otherhosts.txt"

?>


1 ghost  
0
SqStat error
Error (1): Cannot get data. Server answered: HTTP/1.0 403 Forbidden

Столкнулся вот с этим, действовал согласно инструкции.


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Календарь
«  Ноябрь 2010  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Сайт детских журналов

Споносор для web-мастеров







Copyright MyCorp © 2024