Чагадаев как он есть > О[б]суждение творчества
Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
Nik:
--- Цитата: adc от 23 Мая 2008 года, 22:30 ---
--- Цитата: Nik от 15 Мая 2008 года, 13:50 ---Спасибо за статю, прошу прощения за глупый вопрос, но никак не разберусь с установкой trafd, т.е. не могу его собрать из bpft. Если можно расписать подробней буду благодарен.
--- Конец цитаты ---
В статье есть раздел "Установка trafd". Делаешь как там написано? И что конкретно не получается, кто что пишет и т.д?
P.S. Извиняюсь, что так поздно ответил - не было в Москве...
--- Конец цитаты ---
Спасибо за ответ.
Был в коммандировке, сейчас вернулся к данной задаче.
Подсчет трафика запустил. Отмечу сразу, ваша биллинговая система настраивается на офис ~200 юзеров. Система поднята на сервере с 3-мя сетевыи интерфейсами (de0 - internet, fxp0 - DMZ, fxp1 - Ethernet). Появилось несколько вопросов, буду признателен, если найдете время ответить.
1. Каким образом можно перестроить систему на работу по неделям, а не по месяцам? (как я понял это файл adc_billing) Т.е. лимит трафика выдается на неделю.
2. Каким образом можно отойти от размерности учитываемого трафика в байтах? Т.е. лимит и текущий трафик, на мой взгляд приятней видеть в мегабайтах.
3. Не совсем понятно по какому принципу производится сброс трафика в конце месяца?
4. Как я понял в трафик включается также и локальный трафик. В моем случае будет еще и трафик в DMZ зону. Как можно средствами trafd отфильтровать локальный трафик? Или это можно сделать только путем обработки дамп файла при записи в таблицу?
P.S. Понимаю, что вопросы в большинстве своем тривиальны и ответ наверняка есть в манах. Но к сожалению, на данный момент у меня не хватает ни знаний, ни времени для изучения вопроса.
Заранее благодарен за ваши комментарии.
adc:
--- Цитата: Nik от 11 Июня 2008 года, 13:03 ---Подсчет трафика запустил. Отмечу сразу, ваша биллинговая система настраивается на офис ~200 юзеров.
--- Конец цитаты ---
Примерно для такой ситуации она и писалась.
--- Цитата: Nik от 11 Июня 2008 года, 13:03 ---Система поднята на сервере с 3-мя сетевыи интерфейсами (de0 - internet, fxp0 - DMZ, fxp1 - Ethernet). Появилось несколько вопросов, буду признателен, если найдете время ответить.
1. Каким образом можно перестроить систему на работу по неделям, а не по месяцам? (как я понял это файл adc_billing) Т.е. лимит трафика выдается на неделю.
--- Конец цитаты ---
Все данные задаются в таблице Ip, вся статистика хранится в таблице Log. Соответсвенно, все решения, типа добавлять ли в firewall правило разрешения доступа для данного юзера в Интернет, принимаются на основании анализа прогой (файл adc_billing) данных, которые возвращает запрос к какой-либо таблице.
Резюмируя - надо изменить запрос в adc_billing так, чтобы он считал трафик юзера не за текущий месяц, а за текущую неделю. Если используется web-интерфейс, там тоже нужно поменять запрос.
--- Цитата: Nik от 11 Июня 2008 года, 13:03 ---2. Каким образом можно отойти от размерности учитываемого трафика в байтах? Т.е. лимит и текущий трафик, на мой взгляд приятней видеть в мегабайтах.
--- Конец цитаты ---
В файле на php web-интерфейса результат запроса форматируется так, чтобы между разрядами появлялись запятые. Нужно туда дописать другую обработку.
--- Цитата: Nik от 11 Июня 2008 года, 13:03 ---3. Не совсем понятно по какому принципу производится сброс трафика в конце месяца?
--- Конец цитаты ---
Он не сбрасывается, он хранится пока вы не очистите таблицу Log. Просто все запросы в коммандных файлах и web-интерфейсе считают трафик за текущий месяц.
--- Цитата: Nik от 11 Июня 2008 года, 13:03 ---4. Как я понял в трафик включается также и локальный трафик. В моем случае будет еще и трафик в DMZ зону. Как можно средствами trafd отфильтровать локальный трафик? Или это можно сделать только путем обработки дамп файла при записи в таблицу?
--- Конец цитаты ---
Проще и идеологически вернее (на мой взгляд) отфильтровывать этот трафик путём добавления дополнительных условий в запросы в файле adc_billing и web-интерфейсе.
--- Цитата: Nik от 11 Июня 2008 года, 13:03 ---P.S. Понимаю, что вопросы в большинстве своем тривиальны и ответ наверняка есть в манах. Но к сожалению, на данный момент у меня не хватает ни знаний, ни времени для изучения вопроса.
--- Конец цитаты ---
Да ничего страшного... ;-)
extra:
--- Цитата: adc от 27 Апреля 2008 года, 00:47 ---
--- Цитата: DeVeO от 25 Апреля 2008 года, 14:28 ---Добрый день. Просмотрел (может быть что-то пропустил) код на php. А случайно в статистику не примешивается внутренний трафик (между компьютерами локальной сети, внутренним прокси и т. д.)?
--- Конец цитаты ---
Примешивается. Но туда попадает только трафик между компьютером, на котором установлен коллектор (bpft), и клиентом. Можно добавить одну строчку во все SQL'ные запросы (AND Log.ip_from NOT LIKE '192.168.0.%') - и он перестанет учитываться. Но тогда перестанет учитываться и трафик, который идёт от proxy-сервера к клиенту.
--- Конец цитаты ---
всем привет!!!
а можно поподробнее расписать, если не затруднит :)
extra:
так ладно, с этим разобрался ;)
щас пытаюсь разобраться с вебинтерфейсом... как сделать просмотр статистики в мегабайтах, и как бы сделать чтоб лимит побольше выставить и безлимит...
40k:
Большое спасибо за статью, использую данный метод у себя. Правда машин меньше 20.
Немного его перековырял под PF, а так же немного расширил веб-морду.
Управление пользователями веду через подключение к базе с помощью dbForge Studio for MySQL. Не хвататет админ раздела, где можно вкл/откл, создавать/удалять и редактировать пользователей.
"щас пытаюсь разобраться с вебинтерфейсом... как сделать просмотр статистики в мегабайтах, и как бы сделать чтоб лимит побольше выставить и безлимит..." придеться дописать пару строк везде =) Например если -1 в лимите значит пользователь меготип. Вообще есть много идей которые желательно добавить. Ток подзабыл я пхп =)
Навигация
Перейти к полной версии