Jump to content

Билинг для 300-500 абонентов.


Recommended Posts

 

покажите пункт где написано что GPL программы не могу использовать CPAN Perl модули ?

В лицензиях самих модулей написано, как можно использовать их код в других проектах. И вы ложите на эти лицензии. Не хорошо. А что по этому поводу думает ваша лицензия GPL - никого не волнует :)

 

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

 

 

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

Link to post
Share on other sites
  • Replies 248
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Не поленитесь и сделайте нормально. Не нужно никакких pppoe. Только гемороя себе добавите и тех. поддержке. Стройте простой ipoe на unnumbered, влан на дом или на пользователя.

Извините, не удержался. Если сравнивать Абилс с машинами, то это Ваз2101 на 500 тысяче пробега, с непонятными внутренностями после пердоделок, а  главный специалист сервиса - любитель фильмов ужаса.

Нет ни одного универсального биллинга. Каждый биллинг рассчитан на своего клиента. Самый простой показатель - к-во абонентов. Какие-то биллинги уверенно нацелены на сегмент в 0-5000 абонентов, другие

Posted Images

 

 

які обмеження в безкоштовній версії абіллсу?

Взагалі-то http://abills.net.ua/wiki/doku.php/abills:docs:features:ru#otlichie_kommercheskoj_versii_ot_publichnoj

Але як на мене то відсутнісь повноцінної документації.

 

 

Это как?  :blink:

Мав на увазі більш повноцінну документацію для комерцюзерів (хоча я її ніколи не бачив - можливо там і нічого такого немає).

А з доками з абілсвікі - так можна налаштувати базу як мінімум, але для мене всерівно це наполовину чорний ящик.

Я не заморачуюсь. Поставив - працює - не трогаю.

 

А якщо по темі - яку суму готовий викласти провайдер з абонбазою в 500 юзерів за білінг , висловлюючись мовою автопродаванів - первийвладелецвложенийнетребуетселпоехал?

Edited by user50
Link to post
Share on other sites

довольно проблемно делать отдельно патчи отдельно другую ветку учитывая что добавление новых возможностей идёт каждую неделю, переход на  git  репозиторий немного улучшил эту ситуация

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

Если да - то проект живет в ручном режиме и именно Вы являетесь препятствием для его развития.

Если нет - тогда с тестированием нужно что-то делать: надоело быть тестерами.

Link to post
Share on other sites

Вибачаюсь що не в тему , але не хотів створювати нового поста 

Тут колись на форумі рахували скільки трафіку потрібно приміром на 500- 1000 юзерів , будь - ласка ткніть носом в цей топік. 

Дякую  :)

Link to post
Share on other sites

Вибачаюсь що не в тему , але не хотів створювати нового поста 

Тут колись на форумі рахували скільки трафіку потрібно приміром на 500- 1000 юзерів , будь - ласка ткніть носом в цей топік. 

Дякую  :)

От 500Мбит  до 1Гб хватит вполне  :) 

Link to post
Share on other sites

 

Вибачаюсь що не в тему , але не хотів створювати нового поста 

Тут колись на форумі рахували скільки трафіку потрібно приміром на 500- 1000 юзерів , будь - ласка ткніть носом в цей топік. 

Дякую  :)

От 500Мбит  до 1Гб хватит вполне  :)

 

Спасибі , було б добре ще ссилочку цю , там гарно все було розписано =)

Link to post
Share on other sites

там писали, що на абонента в середньому потрібно 1-1,5мбіт/с...

Ну всередьному чим більше юзерів, тим менше в пропорції їм треба трафіку.

Ми на майже 500 чоловік використовуємо до 150 мегабіт, іноді і до 100 бува не дотягує.

І від тарифів залежить ще, тому на 1к юзерів з нашими тарифами 300 мегабіт вистачить :)

Link to post
Share on other sites

 

там писали, що на абонента в середньому потрібно 1-1,5мбіт/с...

Ну всередьному чим більше юзерів, тим менше в пропорції їм треба трафіку.

Ми на майже 500 чоловік використовуємо до 150 мегабіт, іноді і до 100 бува не дотягує.

І від тарифів залежить ще, тому на 1к юзерів з нашими тарифами 300 мегабіт вистачить :)

 

А які у вас тарифи ?=)

Link to post
Share on other sites

 

 

там писали, що на абонента в середньому потрібно 1-1,5мбіт/с...

Ну всередьному чим більше юзерів, тим менше в пропорції їм треба трафіку.

Ми на майже 500 чоловік використовуємо до 150 мегабіт, іноді і до 100 бува не дотягує.

І від тарифів залежить ще, тому на 1к юзерів з нашими тарифами 300 мегабіт вистачить :)

 

А які у вас тарифи ?=)

 

Ві-Фі 3 мегабіта, кабель 10 мегабіт.

Link to post
Share on other sites

А ну тоді зрозуміло =)

Мене цікавлять тарифи від 10 до 40

Ну на практиці скажу що тариф від 10 до 40 самі по собі не відрізняються навантаженням на аплінк.

Від 50 вже відчувається різниця, і то коли юзер шось закачує.

В мене статистика така, що торентів десь 30% від усього потоку.

Інше хттп трафік, котрий не такий вже важкий, що навантажувати весь абонскьий канал. Ютуб перші 5 секунд навантажує канал, далі тягне пару мегабіт.

Ну десь 500 мегабіт вам вистачить, більш ніж впевнений, а навіть якщо не вистачить то можно докупити канал, не бачу жодних проблем.

Також не бачу причин на старті брати пів гіга, якщо 100-200 мегабіт на старті позаочі вистачить.

Edited by L1ght
Link to post
Share on other sites

Проблема у тому що трафік у місті де плануємо будуватись , мяко кажучи не дешевий  , тому і намагаюсь максимально прорахувати все .

Спасибі за консультацію  :)

Link to post
Share on other sites

Проблема у тому що трафік у місті де плануємо будуватись , мяко кажучи не дешевий  , тому і намагаюсь максимально прорахувати все .

Спасибі за консультацію  :)

Недешевий у Київстара на мобільних вишках. По 120 гривен за мегабіт.

Link to post
Share on other sites
примеры в студию
SELECT id as nas_id, 
    name AS nas_name,
    nas_identifier, 
    descr AS nas_describe, 
    ip AS nas_ip, 
    nas_type, 
    auth_type AS nas_auth_type, 
    mng_host_port as nas_mng_ip_port, 
    mng_user AS nas_mng_user, 
    DECODE(mng_password, 'test12345678901234567890') AS nas_mng_password, 
    rad_pairs AS nas_rad_pairs, 
    alive AS nas_alive, 
    disable AS nas_disable, 
    ext_acct AS nas_ext_acct, 
    gid, 
    address_build, 
    address_street, 
    address_flat, 
    zip, 
    city, 
    country, 
    domain_id, 
    mac,
    changed, 
    location_id
 FROM nas
 WHERE ip='127.0.0.1' and (nas_identifier='accel-ppp' or nas_identifier='')
 ORDER BY nas_identifier DESC;

SELECT id as nas_id, 
    name AS nas_name,
    nas_identifier, 
    descr AS nas_describe, 
    ip AS nas_ip, 
    nas_type, 
    auth_type AS nas_auth_type, 
    mng_host_port as nas_mng_ip_port, 
    mng_user AS nas_mng_user, 
    DECODE(mng_password, 'test12345678901234567890') AS nas_mng_password, 
    rad_pairs AS nas_rad_pairs, 
    alive AS nas_alive, 
    disable AS nas_disable, 
    ext_acct AS nas_ext_acct, 
    gid, 
    address_build, 
    address_street, 
    address_flat, 
    zip, 
    city, 
    country, 
    domain_id, 
    mac,
    changed, 
    location_id
 FROM nas
 WHERE ip='127.0.0.1' and (nas_identifier='accel-ppp' or nas_identifier='')
 ORDER BY nas_identifier DESC;

select
  u.uid,
  DECODE(password, 'test12345678901234567890') AS passwd,
  UNIX_TIMESTAMP() AS session_start,
  UNIX_TIMESTAMP(DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP()), '%Y-%m-%d')) AS day_bagin,
  DAYOFWEEK(FROM_UNIXTIME(UNIX_TIMESTAMP())) AS day_of_week,
  DAYOFYEAR(FROM_UNIXTIME(UNIX_TIMESTAMP())) AS day_of_year,
  u.company_id,
  u.disable,
  u.bill_id,
  u.credit,
  u.activate AS account_activate,
  u.reduction,
  u.ext_bill_id,
  UNIX_TIMESTAMP(u.expire) AS account_expire
     FROM users u
     WHERE 
        u.id='test' AND u.domain_id='0'
        AND (u.expire='0000-00-00' or u.expire > CURDATE())
        AND (u.activate='0000-00-00' or u.activate <= CURDATE())
        AND u.deleted='0'
       GROUP BY u.id;

SELECT ROUND(deposit, 2) FROM bills WHERE id='1';

select  if (dv.logins=0, if(tp.logins is null, 0, tp.logins), dv.logins) AS logins,
  if(dv.filter_id != '', dv.filter_id, if(tp.filter_id is null, '', tp.filter_id)) AS filter,
  if(dv.ip>0, INET_NTOA(dv.ip), 0) AS ip,
  INET_NTOA(dv.netmask) AS netmask,
  dv.tp_id AS tp_num,
  dv.speed AS user_speed,
  dv.cid,
  
  tp.total_time_limit,
  tp.day_time_limit,
  tp.week_time_limit,
  tp.month_time_limit,
  UNIX_TIMESTAMP(DATE_FORMAT(DATE_ADD(curdate(), INTERVAL 1 MONTH), '%Y-%m-01')) - UNIX_TIMESTAMP() AS time_limit,

  tp.total_traf_limit,
  tp.day_traf_limit,
  tp.week_traf_limit,
  tp.month_traf_limit,
  tp.octets_direction,

  if (count(un.uid) + count(tp_nas.tp_id) = 0, 0,
    if (count(un.uid)>0, 1, 2)) AS nas,

  UNIX_TIMESTAMP() AS session_start,
  UNIX_TIMESTAMP(DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP()), '%Y-%m-%d')) AS day_begin,
  DAYOFWEEK(FROM_UNIXTIME(UNIX_TIMESTAMP())) AS day_of_week,
  DAYOFYEAR(FROM_UNIXTIME(UNIX_TIMESTAMP())) AS day_of_year,
  dv.disable,
  tp.max_session_duration,
  tp.payment_type,
  tp.credit_tresshold,
  tp.rad_pairs AS tp_rad_pairs,
  count(i.id) AS intervals,
  tp.age AS account_age,
  dv.callback,
  dv.port,
  tp.traffic_transfer_period,
  tp.neg_deposit_filter_id,
  tp.ext_bill_account,
  tp.credit AS tp_credit,
  tp.ippool as tp_ippool,
  dv.join_service,
  tp.tp_id,
  tp.active_day_fee,
  tp.neg_deposit_ippool AS neg_deposit_ip_pool,
  dv.expire AS dv_expire
     FROM (dv_main dv)
     LEFT JOIN tarif_plans tp ON (dv.tp_id=tp.id AND tp.domain_id='0')
     LEFT JOIN users_nas un ON (un.uid = dv.uid)
     LEFT JOIN tp_nas ON (tp_nas.tp_id = tp.tp_id)
     LEFT JOIN intervals i ON (tp.tp_id = i.tp_id)
     WHERE dv.uid='1'
     AND (dv.expire='0000-00-00' or dv.expire > CURDATE())
     GROUP BY dv.uid;

SELECT ippools.ip, ippools.counts, ippools.id FROM ippools, nas_ippools
     WHERE ippools.id=nas_ippools.pool_id AND nas_ippools.nas_id='1'
     ORDER BY ippools.priority;

SELECT c.framed_ip_address
  FROM dv_calls c
  INNER JOIN nas_ippools np ON (c.nas_id=np.nas_id)
  WHERE np.pool_id in ( 1 )
  GROUP BY c.framed_ip_address;

INSERT INTO dv_calls SET started=now(),
       lupdated        = UNIX_TIMESTAMP(),
       status          = '11',
       acct_session_id = 'IP',
       nas_ip_address  = INET_ATON('127.0.0.1'), nas_id='1', tp_id='100', user_name='test', framed_ip_address=167772224, uid='1';

SELECT id, in_price, out_price, prepaid, in_speed, out_speed, net_id, expression
             FROM trafic_tarifs
             WHERE interval_id='0';

INSERT INTO errors_log (date, log_type, action, user, message, nas_id)
 values (now(), '6', 'AUTH', 'test', 'CID: 192.168.6.94  GT: 0.07730',  '1');

SELECT id as nas_id, 
    name AS nas_name,
    nas_identifier, 
    descr AS nas_describe, 
    ip AS nas_ip, 
    nas_type, 
    auth_type AS nas_auth_type, 
    mng_host_port as nas_mng_ip_port, 
    mng_user AS nas_mng_user, 
    DECODE(mng_password, 'test12345678901234567890') AS nas_mng_password, 
    rad_pairs AS nas_rad_pairs, 
    alive AS nas_alive, 
    disable AS nas_disable, 
    ext_acct AS nas_ext_acct, 
    gid, 
    address_build, 
    address_street, 
    address_flat, 
    zip, 
    city, 
    country, 
    domain_id, 
    mac,
    changed, 
    location_id
 FROM nas
 WHERE ip='127.0.0.1' and (nas_identifier='accel-ppp' or nas_identifier='')
 ORDER BY nas_identifier DESC;

SELECT acct_session_id FROM dv_calls 
    WHERE user_name='test' AND nas_id='1' AND (framed_ip_address=INET_ATON('10.0.0.64') OR framed_ip_address=0);

UPDATE dv_calls SET
         status='1',
         started=FROM_UNIXTIME(1414669426), 
         lupdated=UNIX_TIMESTAMP(), 
         nas_port_id='0', 
         acct_session_id='0000000000fcf9d2', 
         CID='192.168.6.94', 
         CONNECT_INFO=''
         WHERE user_name='test' AND nas_id='1' AND acct_session_id='IP' AND (framed_ip_address=INET_ATON('10.0.0.64') OR framed_ip_address=0) 
         LIMIT 1;

INSERT into s_detail (acct_session_id, nas_id, acct_status, last_update, sent1, recv1, sent2, recv2, id, sum)
   VALUES ('0000000000fcf9d2', '1',
    '1', UNIX_TIMESTAMP(),
    '0', '0',
    '0', '0',
    'test', '0');
 

Так выглядит авторизация обычного пользователя в биллинге Abills. Все хорошо, пока база не наполнена. Но как база наполнится, мы увидим прекраснейшее использование могучих индексом mysql. Особенно таблицы dv_log. А далее будем разбирать deadlock который я думаю так и встречается по сей день.

ps/ Продолжение следует.

 

И раз вы так любите придерживаться стандартов, поправьте вот этот запрос.

select
  u.uid,
  DECODE(password, 'test12345678901234567890') AS passwd,
  UNIX_TIMESTAMP() AS session_start,
  UNIX_TIMESTAMP(DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP()), '%Y-%m-%d')) AS day_bagin,
  DAYOFWEEK(FROM_UNIXTIME(UNIX_TIMESTAMP())) AS day_of_week,
  DAYOFYEAR(FROM_UNIXTIME(UNIX_TIMESTAMP())) AS day_of_year,
  u.company_id,
  u.disable,
  u.bill_id,
  u.credit,
  u.activate AS account_activate,
  u.reduction,
  u.ext_bill_id,
  UNIX_TIMESTAMP(u.expire) AS account_expire
     FROM users u
     WHERE 
        u.id='test' AND u.domain_id='0'
        AND (u.expire='0000-00-00' or u.expire > CURDATE())
        AND (u.activate='0000-00-00' or u.activate <= CURDATE())
        AND u.deleted='0'
       GROUP BY u.id;

select = SELECT.

 

Навскидку при одновременном подключении 300 пользователей, имеем 14*300=4200 запросов в единицу времени (Deadlock привет).

Edited by dimka88
Link to post
Share on other sites

Ну в dv_log тут ничего не попадает (разве что при единомоментном дисконнекте всех юзеров). Но в целом - да, до идеала далеко...

Link to post
Share on other sites

Ну в dv_log тут ничего не попадает (разве что при единомоментном дисконнекте всех юзеров). Но в целом - да, до идеала далеко...

Да - это еще одна проблема: отпал нас, время осознания этого у абиллса минут 15, а все это время юзеры досят остальные насы (пппое).
Link to post
Share on other sites
Да - это еще одна проблема: отпал нас, время осознания этого у абиллса минут 15, а все это время юзеры досят остальные насы (пппое).

 

Вы это время можете сами регулировать, там оно в конфиге задаётся количество не пришедших acct-interim-update, можете до 5 минут сократить, это если не пришёл хотя бы 1 update. Можете уменьшить время acct-interim-interval и тем самым нагрузить базу еще больше, но Abills быстро осознает, что нас упал. А вообще падение NAS - это в первую очередь проблема NAS.

И да по поводу падений , описанной ситуации, делал Asmodeus фичу, а получилась бага. Там как то сессии с одинаковыми CID на разных нас могли подниматься.

Edited by dimka88
Link to post
Share on other sites

То что нас упал он быстро осознает. А вот юзеров при этом он не отпускает - так и умирают сессии вместе с насом и приконнектится юзер уже не может. Но такое стало часто происходить при переходе на акцельпппд - просто там много еще своих тонких настроек.

Edited by sadmin
Link to post
Share on other sites

А вот юзеров при этом он не отпускает - так и умирают сессии вместе с насом и приконнектится юзер уже не может

Как это - не отпускает? Как только сессия попадает в зап - все, юзер может коннектиться снова. В зап она попадает после N потерянных алайвов.

 

Один минус - удаляется из запа целиком она всего после 2*N алайвов, я прикрутил себе патчик чтобы в запе она висела Y алайвов (доп.переменная конфига), на случай прерывания связи между биллингом и насами/остановки биллинга на профилактику...

Link to post
Share on other sites

Хочу поставить вопрос по другому. Кто переходил с NoDeny 50.33 или других старых версий на какой либо другой биллинг? И на какой и почему? Довольны ли вы результатом?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Firelli
      Снова решил начать заниматься сетями. (в прошлом году сеть продал, и сижу скучаю)
      Билинг был Nodeny+, но как-то маловато, или перерос его. Еще раз его покупать не хочется. (хотя и отработал своих 1000+ клиентов без замечаний)
       
      В идеале утроил бы с  с трекингом для машины/машин и встроенным складом.
      Может подскажете варианты. Те что были в работе и стабильные.
       
    • By pavlabor
      Продолжение темы
      В основу проекта "Firstprov" положен билинг.
      В данной теме предлагаю обсудить технические требования к билингу.
      1. В перспективе сертификация.
      2. Масштабируемость.
      3. Уровневая система доступа.
      Предусматривает три уровня
      - Дирекция (администрация),
      - оператор (реселлер), реселлер должен иметь два уровня доступа, доступ для постоянных и для временных участников.
      - пользователь.
      Дирекция(администрация) имеет самый высокий статус и имеет доступ ко всем объектам для внесения, редактирования, удаления информации.
      Оператор (реселлер) имеет возможность просматривать всю информацию но доступ к объектам для несения, редактирования, удаления информации имеет исключительно в своем разделе.
      Пользователь имеет стандартный доступ к своему кабинету.
      4. Перевод абона от реселлера к реселлеру.
      5. Билинг должен интегрироваться с платежными системами.
      6. Иметь возможность работать с картами, схемами сетей, показывать активность абонов.
      7. Возможность бекапирования, распределения нагрузки, синхронизация данных.
      8. Возможность доработок, создания дополнительных модулей.
       
      Цена и условия приобретения.
      На первом этапе требуется билинг для тестирования для дирекции и нескольких участников.
      Допустим если проект начнется с пяти реселлеров по 100 клиентов, а потом разростется до двадцати реселлеров и 50 тыс клиентов то хотелось бы увидеть ценник на динамику развития.
      Лично мое пожелание это стартовый взнос и абонка 25 копеек с абона (на 1000 абонов, это 250 грн. в месяц).
       
      Вносите свои предложения по тех условиям, но текущие билинги в стандартном состоянии предлагают довольно широкий ассортимент сервисов.
      К выбору билинга, формированию ТУ прошу подойти ответственно, так как выбранный билинг станет ВАШИМ основным инструментом ведения бизнеса, по финансам не стоит забывать золотое правило - "Любой каприз за ВАШИ деньги".
      Также нужно понимать что данное решение подразумевает "белое ведение бизнеса".
       
      Писателей билинга прошу озвучивать свои предложения. По крайней мере если мы даже не выберем Ваше предложение у Вас появилась возможность достойно презентовать свой товар.
       
      Поехали.
      =============================8<---------------------
       
      Сформировавшиеся предложения
       
    • By 000000002010s
      Помогите настроить сервер для биллинга (ubiling) с нуля. Ето надо сделать удалено через нет.
      Задачак такова:
      1.Стадартная схема отключения клиета при отрицательном балансе.
      2. Страница о пополнение счета, через приват 24 на карточку.
      Регистрация клиентов по методу ip+mac.
      Есть сервер hp proliant G5.
      Все кто шарит в етом пишите мне.
      Разумеєтса ето не за даром.
      Пишите в личку.
    • By Martin Odym
      Доброго времени суток уважаемые форумчане. Кратко о сути- даю интернет в частном секторе. построение сети- приход канала на медик-сетевая в серваке (старенький гробик 1 гб озу ддр1, проц на два ядра 1.6) сетевая на выход в 16 порт свитч (тупой)- медики на магистрали (оптику подводим к группе людей дальше от свитча витухой к абонам). Роль билинга выполняет Ubilling. На данный момент число абонентов + - 65 чел. (квартиранты и "периодические плательщики" колыхают  статистику). В последний месяц проц начал проседать (загрузка по cacti по вечерам до 80-90% на процессоре). Вопрос: посоветуйте на какую железку перейти, оставлять юбилинг или же присмотреть другой? 
       
      з.ы Бюджет сети как сами понимаете не резиновый хотелось бы подобрать что то не дорогое и функциональное с примерным запасом на человек 300-400. Сеть собирали сугубо по вторичному рынку так что б.у товары будут предпочтительней. В ответах прошу (по возможности) оставлять ссылки (ссылки на локал вообще чудесно). Большая просьба отвечать тем кто действительно может помочь!!!! Спасибо за внимание.
    • By 49rpam
      Здравствуйте. Читал чтo мoжнo устанoвить билинг на рoутере нo никгда с этим не сталкивался нужнo пoдключить через негo 30-50 челoвек Ктo м0жет мне в эт0м п0м0чь ну или х0тябы п0дсказать (не бесплан0)

×
×
  • Create New...