trafd + mysql + php + прозрачный squid

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
vort314
проходил мимо
Сообщения: 3
Зарегистрирован: 2007-03-01 14:32:07

trafd + mysql + php + прозрачный squid

Непрочитанное сообщение vort314 » 2007-03-01 15:12:04

Проблема в следующем.
Установил все как описано в статьях
http://www.lissyara.su/?id=1010
http://www.lissyara.su/?id=1017

trafd > mysql > php мордочки.

Все прекрастно работает (точнее почти все), все понятно и доступно расписано,
но есть одна загвоздка.

В офисе стоит шлюз на freebsd 6.1 через него офис ломится в инет.
но так как прокси прозрачный были замечены глюки.

Всех клиентов я принудительно заворачиваю с порта 80 на сквидовский порт 3128.
сам же прописал на админской машине и еще на парочке клиентских, прокси сервер в эксплорере и начались непонятки.
А именно ...
не верно считается трафик для тех машин, кому я прописал прокси сервер в браузеры, точнее http трафик вообще не считается для них.

#внутренний интерфейс шлюза
"vr0" 192.168.0.1
#собственно вся клиентская сеть
192.168.0.0/24
#IPFW перекидываю пакеты всех желающих из сети, которые ломяться на порт 80
${ipfw} add fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 in via vr0
# в сквиде собственно вот что
visible_hostname elios
http_port 127.0.0.1:3128 transparent
http_port 3128 vhost
http_port 3128 vport

проблема частичн решается если из запроса мускуля
а именно вот этого
/*
$sql = mysql_query("SELECT to_IP, SUM(bytes) AS `bytes` FROM `" . $IF_internal_servera . "_" . date(Y,time()) . "` WHERE `date` LIKE '" . $curr_month . "-%' AND from_IP != '" . $ip_out_servera . "' AND to_IP != '" . $ip_out_servera . "' AND `to_IP` != '" . $ip_internal_servera . "' AND `from_IP` != '" . $ip_internal_servera . "' AND `to_IP` LIKE '" . $lan_mask . "%' GROUP BY `to_IP` ORDER BY `bytes` DESC");
*/

вырезать вот енто
AND `from_IP` != '" . $ip_internal_servera . "'

но тогда считается трафик с шлюза 192.168.0.1 что совсем уж фыгово. :)

Подскажите почему не учитыватся трафик с клиенской машины если используется прокси в настройках этой самой клиентской машине, и почему все ровно если без прокси.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-01 15:25:43

потомучто если прокси прописан жёстко - то запросы идут не наружу а на прокси...
попробуй в зпросе порт учитывать...
Убей их всех! Бог потом рассортирует...

vort314
проходил мимо
Сообщения: 3
Зарегистрирован: 2007-03-01 14:32:07

Непрочитанное сообщение vort314 » 2007-03-01 15:30:30

lissyara писал(а):потомучто если прокси прописан жёстко - то запросы идут не наружу а на прокси...
попробуй в зпросе порт учитывать...
Ок. Спасибо. Придется немного переделывать запрос. Что весьма проблематично пока с моим знанием мускуля. :)

Slider007
ефрейтор
Сообщения: 62
Зарегистрирован: 2006-08-17 13:29:08
Контактная информация:

Непрочитанное сообщение Slider007 » 2007-03-14 13:31:34

Ребята, кажется у меня такая же проблема как и у vort314.
А именно в веб морде ну уж явно трафика мало кажет.
Начал с запросом экспериментировать, вроде чего-то получается, но не уверен, не могли бы вы меня проверить или подсказать что-то ? :oops:
Используемые порты для доступа в инет: 80, 3128, 25, 110 (ну и ещё некоторые, не суть важно, здесь не буду указывать)
Внутренний ip сервера 192.168.60.1
IP адреса клиентов 192.168.60.x
Внутренний интерфейс fxp1
Получился у меня такой запрос:

SELECT to_IP AS IP_Address,(SUM(bytes))/1024/1024 AS Traf
FROM fxp1_2007
WHERE date LIKE '2007-03-%'
AND to_IP LIKE '192.168.60.%'
AND (port_from_IP='3128' OR port_from_IP='80' OR port_from_IP='25' OR port_from_IP='110')
GROUP BY to_IP ORDER BY Traf DESC

Вроде считает, но есть два вопроса по нему:
1. Ведь по порту 3128 Сквид выдает информацию и снаружи и из кэша, и похоже нет никакой возможности посчитать только то, что попадает снаружи, судя по содержимому таблицы fxp1_2007 :(. Или всётаки такая возможность есть ?

2. Что ещё посоветуете в запрос добавить ?

Slider007
ефрейтор
Сообщения: 62
Зарегистрирован: 2006-08-17 13:29:08
Контактная информация:

Непрочитанное сообщение Slider007 » 2007-03-15 9:34:48

И ещё, объясните пожалуйста, что за порт такой "client" ? Что с него приходит ? Т.к. с него тоже довольно много валится.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-15 9:43:48

это порты с которых отвечают.
типа ~1024%65535
gпросто,конкретный номер порта не имеет значения - он произвольный.
если интеерсно что это - смотри ответный порт.
Убей их всех! Бог потом рассортирует...

Slider007
ефрейтор
Сообщения: 62
Зарегистрирован: 2006-08-17 13:29:08
Контактная информация:

Непрочитанное сообщение Slider007 » 2007-03-15 10:28:32

Таак, короче запрос у меня в конечном счете вот такой получился:

Код: Выделить всё

SELECT to_IP AS IpAdr, (SUM(bytes) )/1024/1024 AS Traf
FROM fxp1_2007
WHERE date LIKE '2007-03-%'
AND to_IP LIKE '192.168.60.%'
AND to_IP != '192.168.60.1'
GROUP BY to_IP
ORDER BY Traf DESC
А разрулить трафик со Сквида я так понял всётаки не представляется возможным ?

И ещё вопрос - почему-то не всегда отрабатывает скрипт для сброса статистики в MySQL взятый отсюда http://www.lissyara.su/?id=1010, т.е. запускаешь его, он тут же промигивает и при этом статистика не меняется. Бывает что и с первого раза срабатывает, но случется что и раз 5 приходится тыкать, пока сработает ..
Было у кого-нибдуь подобное ? Чем можно объяснить ?

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-05-23 16:52:17

И ещё вопрос - почему-то не всегда отрабатывает скрипт для сброса статистики в MySQL взятый отсюда lissyara.su/?id=1010, т.е. запускаешь его, он тут же промигивает и при этом статистика не меняется. Бывает что и с первого раза срабатывает, но случется что и раз 5 приходится тыкать, пока сработает ..
Было у кого-нибдуь подобное ? Чем можно объяснить ?
сейчас лазаю по форуму с тем же вопросом((
прописал его в crontab -e
*/10 * * * * root /root/scripts/trafd.sh
смотрю в /var/log/cron - крон срабатывает:
May 23 17:20:00 direct /usr/sbin/cron[98217]: (root) CMD (root /root/scripts/trafd.sh)
...
May 23 17:30:00 direct /usr/sbin/cron[98245]: (root) CMD (root /root/scripts/trafd.sh)
но при этом дата-время в заголовке /tmp/summaru.$if не меняетя и в базу соответсвенно ничего не добавляется.
запускаю скрипт руками - все работает. может кто знает, где тут грабли? :(

Аватара пользователя
klimov
мл. сержант
Сообщения: 77
Зарегистрирован: 2007-04-19 7:06:36
Откуда: Novosibirsk

Непрочитанное сообщение klimov » 2007-05-24 7:48:23

Anonymous писал(а):
И ещё вопрос - почему-то не всегда отрабатывает скрипт для сброса статистики в MySQL взятый отсюда lissyara.su/?id=1010, т.е. запускаешь его, он тут же промигивает и при этом статистика не меняется. Бывает что и с первого раза срабатывает, но случется что и раз 5 приходится тыкать, пока сработает ..
Было у кого-нибдуь подобное ? Чем можно объяснить ?
сейчас лазаю по форуму с тем же вопросом((
прописал его в crontab -e
*/10 * * * * root /root/scripts/trafd.sh
смотрю в /var/log/cron - крон срабатывает:
May 23 17:20:00 direct /usr/sbin/cron[98217]: (root) CMD (root /root/scripts/trafd.sh)
...
May 23 17:30:00 direct /usr/sbin/cron[98245]: (root) CMD (root /root/scripts/trafd.sh)
но при этом дата-время в заголовке /tmp/summaru.$if не меняетя и в базу соответсвенно ничего не добавляется.
запускаю скрипт руками - все работает. может кто знает, где тут грабли? :(
Попробуй в crone оставить после правила пустую строку.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-24 7:51:49

да не - у него же отрабатывает.
=========
выложи скрипт сюда - посмотрим какая версия...
Убей их всех! Бог потом рассортирует...

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-05-24 17:09:15

убрал указание что запускать нужно от root'a - заработало :)) что в общем-то логично, кронтаб-то пользовательский. ступил.

но тепреь другая затыка - не отображается общий трафик за месяц.
// считаем траффик этого месяца
$traffic_curr_month = mysql_fetch_array(mysql_query("SELECT SUM(bytes) AS `bytes`
FROM `" . $IF_out_servera . "_" . date(Y,time()) . "`
WHERE `to_IP` ='" . $ip_out_servera . "' AND `date`
LIKE '" . $curr_month . "-%'"));
$traffic_curr_meg = $traffic_curr_month[bytes] / 1048576;
$traffic_curr_meg = round($traffic_curr_meg, 2);
присмотрелся сюда - данные выгребаются из таблицы ".$IF_out_servera ."_".date(Y,time())."
в моем случае это myk0_2007, но такой таблицы у меня нет.

mysql> show tables;
+-----------------+
| Tables_in_trafd |
+-----------------+
| em0_2007 |
| traffic_tmp |
| vr0_2007 |
+-----------------+
3 rows in set (0.00 sec)

em0_2007 и vr_2007 - два внутренних интерфейса. на обоих считается трафик, но для вывода статистики пока разные страницы использую.
если изменить на соответсвующий внитренний и-фейс, то для vr0_2007 запрос возвращает NULL, а для em0_2007 какие-то смешные цифры << 1 мб.
причем для таблицы