URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 65359
[ Назад ]

Исходное сообщение
"Офисный шлюз"

Отправлено Constantine A.Yarovoy , 04-Апр-06 05:35 
Господа, вот уже достаточно долгое время не могу выработать стойкого и работающего решения биллинга сквида... хм... да хотя бы даже статистики по нему...

имеем локалку на 100 машин
сервак под фрёй..

на нём squid, сделаны аккаунты для 100 пользователей... они прекрасно лазят. Задача - считать.

Если бы нужно было неточно, можно было бы конечно и c ipfw чудить. Но - нет!
Если бы нужно было почти точно, можно было бы netams, но он навесит на длину пакета ещё и длину запроса к сквиду..., что суммарно плохо выльется..

Если нужно считать детально с линками - выходов лишь только :

1) ротейтить логи сквида, анализировать, выводить через веб... когда больше месяца наберётся логов - паковать..... но с этим столько трёпа...

2) делать pipe... с одной стороны сквид пихает статистику в файл текстовый, а с другой - наша прожка забирает эти приходящие данные... разбирает по полям... кладёт в mysql, а дальше - дело техники....


Я такую штуковину настраивал и она работала, хотя стабильности аж никакой... Если будет около 100 одновременных коннектов есть прямая вероятность, что с pipe не всё считается...


Поразмышляем давайте, чтоли?


Содержание

Сообщения в этом обсуждении
"Офисный шлюз"
Отправлено vec135 , 04-Апр-06 06:15 
>...
>Поразмышляем давайте, чтоли?

Посмотрите эту статью. Не оно?
http://www.opennet.me/base/net/squid_sarg_traf.txt.html


"Офисный шлюз"
Отправлено tian , 04-Апр-06 15:24 
>>...
>>Поразмышляем давайте, чтоли?
>

Отчего не все считается из pipe ?
буферизацию в сквиде отключить, ну и чтобы скрипт читал по возможности быстрее, а парсировать строки можно в отдельном потоке.
У меня такое реализовано. Только я не в БД складываю, а в памяти храню, а потом через таймаут скидываю просто в текстовой файл.
Но здесь есть одно обстоятельство, которое я не придумал как сделать (да и думаю не особо нужно) - лог сквид выдает, когда уже данные получены. Т.е. блокировать юзера можно лишь после того, как сквид выдал лог. Таким образом некоторые могут запустить закачку в раз 100 превышаюшую их лимит - и у них получится.
Юзерам лимит выдается ежедневно.


"Офисный шлюз"
Отправлено andrey , 04-Апр-06 22:59 
>Поразмышляем давайте, чтоли?

есть интересный и бесплатный проект биллинга для squid`a
http://stc.nixdev.org/index.php


"Офисный шлюз"
Отправлено Constantine A.Yarovoy , 05-Апр-06 04:48 
хм... насчёт stc отзывы хорошие, поддержка есть... думаю стоит попробывать...сегодня вечером будем курить STC.

ещё не читал доков, только пробежался.. а вот интересно, как он парсит лог...
лог ведь увеличивается, а если он будет за месяц? он его ротейтит?

и к тому же если он генерит отчёты просто через определённое время, это тоже sucks...,
вот вариант squid2mysql меня очень даже устраивал когда-то, возможно и щас остановлюсь
на нём, но выборки из mysql потом долго проходят..

вообще, согласитесь, для гибкости анализа в будующем, лучше если логи по сквиду кидаются
в базу.. потом можно много интересных выборок делать..

хотелось бы обсудить мнения!.....

p.s. stc в портах нет