Господа, вот уже достаточно долгое время не могу выработать стойкого и работающего решения биллинга сквида... хм... да хотя бы даже статистики по нему...имеем локалку на 100 машин
сервак под фрёй..на нём squid, сделаны аккаунты для 100 пользователей... они прекрасно лазят. Задача - считать.
Если бы нужно было неточно, можно было бы конечно и c ipfw чудить. Но - нет!
Если бы нужно было почти точно, можно было бы netams, но он навесит на длину пакета ещё и длину запроса к сквиду..., что суммарно плохо выльется..Если нужно считать детально с линками - выходов лишь только :
1) ротейтить логи сквида, анализировать, выводить через веб... когда больше месяца наберётся логов - паковать..... но с этим столько трёпа...
2) делать pipe... с одной стороны сквид пихает статистику в файл текстовый, а с другой - наша прожка забирает эти приходящие данные... разбирает по полям... кладёт в mysql, а дальше - дело техники....
Я такую штуковину настраивал и она работала, хотя стабильности аж никакой... Если будет около 100 одновременных коннектов есть прямая вероятность, что с pipe не всё считается...
Поразмышляем давайте, чтоли?
>...
>Поразмышляем давайте, чтоли?Посмотрите эту статью. Не оно?
http://www.opennet.me/base/net/squid_sarg_traf.txt.html
>>...
>>Поразмышляем давайте, чтоли?
>Отчего не все считается из pipe ?
буферизацию в сквиде отключить, ну и чтобы скрипт читал по возможности быстрее, а парсировать строки можно в отдельном потоке.
У меня такое реализовано. Только я не в БД складываю, а в памяти храню, а потом через таймаут скидываю просто в текстовой файл.
Но здесь есть одно обстоятельство, которое я не придумал как сделать (да и думаю не особо нужно) - лог сквид выдает, когда уже данные получены. Т.е. блокировать юзера можно лишь после того, как сквид выдал лог. Таким образом некоторые могут запустить закачку в раз 100 превышаюшую их лимит - и у них получится.
Юзерам лимит выдается ежедневно.
>Поразмышляем давайте, чтоли?есть интересный и бесплатный проект биллинга для squid`a
http://stc.nixdev.org/index.php
хм... насчёт stc отзывы хорошие, поддержка есть... думаю стоит попробывать...сегодня вечером будем курить STC.ещё не читал доков, только пробежался.. а вот интересно, как он парсит лог...
лог ведь увеличивается, а если он будет за месяц? он его ротейтит?и к тому же если он генерит отчёты просто через определённое время, это тоже sucks...,
вот вариант squid2mysql меня очень даже устраивал когда-то, возможно и щас остановлюсь
на нём, но выборки из mysql потом долго проходят..вообще, согласитесь, для гибкости анализа в будующем, лучше если логи по сквиду кидаются
в базу.. потом можно много интересных выборок делать..хотелось бы обсудить мнения!.....
p.s. stc в портах нет