"Форум на сайте Чагадаева"

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

4 декабря 2011 года 19:11
Изменения в разделах, добавлен раздел "Блог"

Автор Тема: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL  (Прочитано 49146 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail

Пишите, если есть что сказать... ;-)
Записан

DeVeO

  • Гость
Вопрос по биллингу
« Ответ #1 : 22 Апреля 2008 года, 18:35 »

Добрый день. Заинтересовала статья по биллингу. Есть вопрос. Если на сервере с FreeBSD стоит squid и пользователи сети принудительно заворачиваются на сквид по-протоколам http,https, то ваша биллинговая система покажет разбивку статистики (сквидовой) по внутренним ip-пользователей? Или нет?
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail
Re: Вопрос по биллингу
« Ответ #2 : 22 Апреля 2008 года, 20:47 »

Добрый день. Заинтересовала статья по биллингу. Есть вопрос. Если на сервере с FreeBSD стоит squid и пользователи сети принудительно заворачиваются на сквид по-протоколам http,https, то ваша биллинговая система покажет разбивку статистики (сквидовой) по внутренним ip-пользователей? Или нет?
Мне кажется, что если установлен Squid, эффективнее поставить анализатор его лога. У такого варианта есть преимущество перед моим биллингом. Если на одном IP'шнике виртуальный хостинг и дофига сайтов, adc_billing покажет только DNS-имя этого IP'шника, а вариант с анализатором лога Squid'а - на какой конкретно сайт ходил пользователь.
Записан

Александр

  • Гость
Re: Вопрос по биллингу
« Ответ #3 : 23 Апреля 2008 года, 19:50 »

Как быть если пользователь или пользователи не имеют привязки к опрелеленному ip-адресу? Я имею ввиду авторищацию в браузере. В сквиде вроде есть такого рода авторизация.. Как это можно реализовать там? Можно ли это реализовать в вашем биллинге. И, сильно зебегая вперед, можно ли базу пользователей синхронизировать с существующей в AD?
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail
Re: Вопрос по биллингу
« Ответ #4 : 27 Апреля 2008 года, 00:55 »

Как быть если пользователь или пользователи не имеют привязки к опрелеленному ip-адресу? Я имею ввиду авторищацию в браузере. В сквиде вроде есть такого рода авторизация.. Как это можно реализовать там? Можно ли это реализовать в вашем биллинге.
Для этого придется немало его дописать.
Думаю, что если Вам не обязателен именно NAT, а подойдёт http- и ftp-прокси, гораздо проще использовать Squid.  ;)

И, сильно зебегая вперед, можно ли базу пользователей синхронизировать с существующей в AD?
Опять же, у меня этого нет, а в Squide есть.
Записан

DeVeO

  • Гость
Вопрос по внутреннему трафику
« Ответ #5 : 25 Апреля 2008 года, 14:28 »

Добрый день. Просмотрел (может быть что-то пропустил) код на php. А случайно в статистику не примешивается внутренний трафик (между компьютерами локальной сети, внутренним прокси и т. д.)?
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail
Re: Вопрос по внутреннему трафику
« Ответ #6 : 27 Апреля 2008 года, 00:47 »

Добрый день. Просмотрел (может быть что-то пропустил) код на php. А случайно в статистику не примешивается внутренний трафик (между компьютерами локальной сети, внутренним прокси и т. д.)?
Примешивается. Но туда попадает только трафик между компьютером, на котором установлен коллектор (bpft), и клиентом. Можно добавить одну строчку во все SQL'ные запросы (AND Log.ip_from NOT LIKE '192.168.0.%') - и он перестанет учитываться. Но тогда перестанет учитываться и трафик, который идёт от proxy-сервера к клиенту.
Записан

Nik

  • Гость

Спасибо за статю, прошу прощения за глупый вопрос, но никак не разберусь с установкой trafd, т.е. не могу его собрать из bpft. Если можно расписать подробней буду благодарен.

Спасибо.

PS FreeBSD 6.3
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail

Спасибо за статю, прошу прощения за глупый вопрос, но никак не разберусь с установкой trafd, т.е. не могу его собрать из bpft. Если можно расписать подробней буду благодарен.
В статье есть раздел "Установка trafd". Делаешь как там написано? И что конкретно не получается, кто что пишет и т.д?

P.S. Извиняюсь, что так поздно ответил - не было в Москве...
Записан

Wit

  • Гость

Эх... зачтено... вот добавить бы функции обрезание скорости) возможность создания тарифных планов))) и цены бы небыло...
Записан

Nik

  • Гость

Спасибо за статю, прошу прощения за глупый вопрос, но никак не разберусь с установкой trafd, т.е. не могу его собрать из bpft. Если можно расписать подробней буду благодарен.
В статье есть раздел "Установка trafd". Делаешь как там написано? И что конкретно не получается, кто что пишет и т.д?

P.S. Извиняюсь, что так поздно ответил - не было в Москве...

Спасибо за ответ.

Был в коммандировке, сейчас вернулся к данной задаче.
Подсчет трафика запустил. Отмечу сразу, ваша биллинговая система настраивается на офис ~200 юзеров. Система поднята на сервере с 3-мя сетевыи интерфейсами (de0 - internet, fxp0 - DMZ, fxp1 - Ethernet). Появилось несколько вопросов, буду признателен, если найдете время ответить.

1. Каким образом можно перестроить систему на работу по неделям, а не по месяцам? (как я понял это файл adc_billing) Т.е. лимит трафика выдается на неделю.

2. Каким образом можно отойти от размерности учитываемого трафика в байтах? Т.е. лимит и текущий трафик, на мой взгляд приятней видеть в мегабайтах.

3. Не совсем понятно по какому принципу производится сброс трафика в конце месяца?

4. Как я понял в трафик включается также и локальный трафик. В моем случае будет еще и трафик в DMZ зону. Как можно средствами trafd отфильтровать локальный трафик? Или это можно сделать только путем обработки дамп файла при записи в таблицу?

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

Заранее благодарен за ваши комментарии.
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail

Подсчет трафика запустил. Отмечу сразу, ваша биллинговая система настраивается на офис ~200 юзеров.
Примерно для такой ситуации она и писалась.

Система поднята на сервере с 3-мя сетевыи интерфейсами (de0 - internet, fxp0 - DMZ, fxp1 - Ethernet). Появилось несколько вопросов, буду признателен, если найдете время ответить.

1. Каким образом можно перестроить систему на работу по неделям, а не по месяцам? (как я понял это файл adc_billing) Т.е. лимит трафика выдается на неделю.
Все данные задаются в таблице Ip, вся статистика хранится в таблице Log. Соответсвенно, все решения, типа добавлять ли в firewall правило разрешения доступа для данного юзера в Интернет, принимаются на основании анализа прогой (файл adc_billing) данных, которые возвращает запрос к какой-либо таблице.

Резюмируя - надо изменить запрос в adc_billing так, чтобы он считал трафик юзера не за текущий месяц, а за текущую неделю. Если используется web-интерфейс, там тоже нужно поменять запрос.

2. Каким образом можно отойти от размерности учитываемого трафика в байтах? Т.е. лимит и текущий трафик, на мой взгляд приятней видеть в мегабайтах.
В файле на php web-интерфейса результат запроса форматируется так, чтобы между разрядами появлялись запятые. Нужно туда дописать другую обработку.

3. Не совсем понятно по какому принципу производится сброс трафика в конце месяца?
Он не сбрасывается, он хранится пока вы не очистите таблицу Log. Просто все запросы в коммандных файлах и web-интерфейсе считают трафик за текущий месяц.

4. Как я понял в трафик включается также и локальный трафик. В моем случае будет еще и трафик в DMZ зону. Как можно средствами trafd отфильтровать локальный трафик? Или это можно сделать только путем обработки дамп файла при записи в таблицу?
Проще и идеологически вернее (на мой взгляд) отфильтровывать этот трафик путём добавления дополнительных условий в запросы в файле adc_billing и web-интерфейсе.

P.S. Понимаю, что вопросы в большинстве своем тривиальны и ответ наверняка есть в манах. Но к сожалению, на данный момент у меня не хватает ни знаний, ни времени для изучения вопроса.
Да ничего страшного... ;-)
Записан

extra

  • Новичёк
  • *
  • Сообщений: 3
Re: Вопрос по внутреннему трафику
« Ответ #12 : 22 Октября 2008 года, 18:31 »

Добрый день. Просмотрел (может быть что-то пропустил) код на php. А случайно в статистику не примешивается внутренний трафик (между компьютерами локальной сети, внутренним прокси и т. д.)?
Примешивается. Но туда попадает только трафик между компьютером, на котором установлен коллектор (bpft), и клиентом. Можно добавить одну строчку во все SQL'ные запросы (AND Log.ip_from NOT LIKE '192.168.0.%') - и он перестанет учитываться. Но тогда перестанет учитываться и трафик, который идёт от proxy-сервера к клиенту.

всем привет!!!
а можно поподробнее расписать, если не затруднит :)
Записан

extra

  • Новичёк
  • *
  • Сообщений: 3
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #13 : 22 Октября 2008 года, 22:31 »

так ладно, с этим разобрался  ;)
щас пытаюсь разобраться с вебинтерфейсом... как сделать просмотр статистики в мегабайтах, и как бы сделать чтоб лимит побольше выставить и безлимит...
Записан

40k

  • Новичёк
  • *
  • Сообщений: 4
    • E-mail
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #14 : 23 Октября 2008 года, 17:15 »

Большое спасибо за статью, использую данный метод у себя. Правда машин меньше 20.
Немного его перековырял под PF, а так же немного расширил веб-морду.
Управление пользователями веду через подключение к базе с помощью dbForge Studio for MySQL. Не хвататет админ раздела, где можно вкл/откл, создавать/удалять и редактировать пользователей.

"щас пытаюсь разобраться с вебинтерфейсом... как сделать просмотр статистики в мегабайтах, и как бы сделать чтоб лимит побольше выставить и безлимит..." придеться дописать пару строк везде =) Например если -1 в лимите значит пользователь меготип. Вообще есть много идей которые желательно добавить. Ток подзабыл я пхп =)
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #15 : 24 Октября 2008 года, 10:59 »

щас пытаюсь разобраться с вебинтерфейсом... как сделать просмотр статистики в мегабайтах,
Самое простое, что пришло сейчас в голову - всюду, где есть функция number_format(), добавить /1000. Например, заменить number_format($row->quota) на number_format($row->quota /1000)

и как бы сделать чтоб лимит побольше выставить и безлимит...
ALTER TABLE traffic.Ip MODIFY COLUMN `QUOTA` BIGINT(20) UNSIGNED DEFAULT NULL;
И выставляешь лимит побольше.
Либо, как тут уже указали, модифицируется биллинг на понимание параметров типа -1.
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #16 : 24 Октября 2008 года, 11:08 »

Большое спасибо за статью, использую данный метод у себя.
О, неужели кто-то всё-таки использует? А то у меня такое впечатление, что читают статью, приходят сюда, задают вопросы и забивают на использование. :)

Немного его перековырял под PF, а так же немного расширил веб-морду.
Управление пользователями веду через подключение к базе с помощью dbForge Studio for MySQL.
Я MySQLQueryBrowser пользуюсь, о dbForge Studio, честно сказать, не слышал. Но в этом ничего странного нет, я под MySQL не пишу в основном ничего...

Не хвататет админ раздела, где можно вкл/откл, создавать/удалять и редактировать пользователей.
Ну да. Со свободным временем большие проблемы.. По хорошему нужно бы написать версию 2, где IP-адреса хранились бы в виде INT, время в виде UNIX-time, всё это ускорило бы его на порядки. Ну и админку переписать...
Эх, мечты...  :'(
Записан

40k

  • Новичёк
  • *
  • Сообщений: 4
    • E-mail
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #17 : 24 Октября 2008 года, 12:56 »

О, неужели кто-то всё-таки использует? А то у меня такое впечатление, что читают статью, приходят сюда, задают вопросы и забивают на использование. :)
Да ты прав многие забивают на использование после прочтения статьи. Но нерастраивайся, все будет хорошо.

Я MySQLQueryBrowser пользуюсь, о dbForge Studio, честно сказать, не слышал. Но в этом ничего странного нет, я под MySQL не пишу в основном ничего...
Дело не в инструменте который используют, а то что используют для таких целей сторонний продукт.

Ну да. Со свободным временем большие проблемы.. По хорошему нужно бы написать версию 2, где IP-адреса хранились бы в виде INT, время в виде UNIX-time, всё это ускорило бы его на порядки. Ну и админку переписать...
Эх, мечты... 
предлагаю создать тему с тем, что нужно внести в новую версию и каждый желающий смог бы предложить вариант решения определенной функции. Однако нужно создать базу на сонове которой будет развиваться дополнительный функционал.
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #18 : 25 Октября 2008 года, 00:54 »

О, неужели кто-то всё-таки использует? А то у меня такое впечатление, что читают статью, приходят сюда, задают вопросы и забивают на использование. :)
Да ты прав многие забивают на использование после прочтения статьи. Но нерастраивайся, все будет хорошо.
ИмяРек ;) (не знаю, как тебя звать, так что - sorry), мне уже давно слишком много лет, чтобы расстраиваться из-за таких вещей.  ;D

Я MySQLQueryBrowser пользуюсь, о dbForge Studio, честно сказать, не слышал. Но в этом ничего странного нет, я под MySQL не пишу в основном ничего...
Дело не в инструменте который используют, а то что используют для таких целей сторонний продукт.
Ну это вечный спор - GUI vs CLI... На мой взгляд, MC удобнее bash и т.д..

предлагаю создать тему с тем, что нужно внести в новую версию и каждый желающий смог бы предложить вариант решения определенной функции. Однако нужно создать базу на сонове которой будет развиваться дополнительный функционал.
Создай  ;), это же может любой зарегистрированный юзер.
Но сначала надо бы посмотреть netams (netams.com), мне говорили в ней не так давно появилась возможность учёта конкретных ip'шников, куда ходил user.
Записан

40k

  • Новичёк
  • *
  • Сообщений: 4
    • E-mail
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #19 : 30 Октября 2008 года, 00:07 »

да в нетамс такое присутствует. (через lpcap у меня работало). зато не умеет квотить используя pf.
пошел создавать тему =)
Записан

zevs.79

  • Новичёк
  • *
  • Сообщений: 1
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #20 : 25 Ноября 2008 года, 12:27 »

Очень заинтересовала ваша статья!!! Хочу такой же билинг! Пробовал настроить Netams но мне както показалося он кривоватым... а может просто дело в моих кривых руках...  ::)  Я начинающий и прошу не судить меня строго за мои приметивные вопросы 8)  Первым далом я переконфигурировал ядро под "device bp " Но вот не понял как завести базу 'traffic' и куда нужно положить этот скрипт "create_db_&_users_&_tables.sql . Объясните если не сложно поподробней на этом моменте.... Заранее благодарен!!!!
Записан

eXo

  • Гость
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #21 : 04 Февраля 2009 года, 11:47 »

Очень интересная сатья... щас пытаюсь ее реализоватьу себя на тестовых машинах, воттолько 1 заковырка (опыта у меня немного во фряхах).. не могли бы вы помочь мне /usr/local/sbin/adc_billing  переписать и выложить для примера для добавления IPшников в таблицу в правила для PFа ( /etc/pf.conf )???
Подскажите плз.... Очеь надо....
Записан

Ambabas

  • Гость
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #22 : 26 Марта 2009 года, 15:08 »

Вопрос к автору, а будет ли данная система работать с PostgreSQL?
просто он на сервере уже давно используется, и ставить еще и мускул для 1 задачи не считаю правильным
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #23 : 30 Марта 2009 года, 09:48 »

Вопрос к автору, а будет ли данная система работать с PostgreSQL?
Думаю, нужно будет совсем чуточку допилить напильником, и всё заработает.
Сам не проверял, не знаю.  ;)

просто он на сервере уже давно используется, и ставить еще и мускул для 1 задачи не считаю правильным
согласен  :)
Записан

Oleg

  • Гость
Re: Биллинг на FreeBSD: пишем сами, используя PHP, trafd, MySQL
« Ответ #24 : 14 Апреля 2009 года, 11:23 »

Помогите пожалусто разобраться с установкой trаfd ! Непойму там описанно Вами 2 способа установки или 2 пункта... ? Нужно ли инсталировать trafd со сменой путей. Или просто достаточно скинуть в папку  trafd и traflog в /usr/local/sbin/ приложенные вами файлы???
Записан

ZLOI

  • Гость

Скажите пожалусто для работы вашей системы обязательно нужно использовать порт p5-DBD-mysql?
Записан

anton54

  • Гость

Скажите пожалуйста, а где прописывать квоты?
Записан

anton54

  • Гость

щас пытаюсь разобраться с вебинтерфейсом... как сделать просмотр статистики в мегабайтах,
Самое простое, что пришло сейчас в голову - всюду, где есть функция number_format(), добавить /1000. Например, заменить number_format($row->quota) на number_format($row->quota /1000)

и как бы сделать чтоб лимит побольше выставить и безлимит...
ALTER TABLE traffic.Ip MODIFY COLUMN `QUOTA` BIGINT(20) UNSIGNED DEFAULT NULL;
И выставляешь лимит побольше.
Либо, как тут уже указали, модифицируется биллинг на понимание параметров типа -1.
А куда строку с лимитами добавит?
Записан

Георгий

  • Новичёк
  • *
  • Сообщений: 1
    • E-mail
Концептуальная модель Биллинг счет трафика
« Ответ #28 : 01 Декабря 2012 года, 21:33 »

Доброе время суток.
Я студент, У меня задание создать биллинг счет трафика. подскажите пожалуйста как будет выглядеть Концептуальная модель?
Записан

adc

  • Administrator
  • Новичёк
  • *****
  • Сообщений: 433
    • E-mail
Re: Концептуальная модель Биллинг счет трафика
« Ответ #29 : 05 Декабря 2012 года, 02:44 »

Георгий, добрый день! :)
Во-первых, я рад, что Вы студент, но что у Вас с падежами?
Во-вторых, Вам, наверное, надо подробнее написать свой вопрос, поскольку мне он не очень понятен.

P.S. Если, конечно, Ваше сообщение не спам.  >:(
Записан