Jump to content

Первое число каждого месяца


MorS

Recommended Posts

Здравствуйте! 1-го числа каждого месяца, видимо, из-за процесса закрытия учетного периода "падает" радиус сервер:

 

May  1 00:00:15 billing kernel: [466821.810836] freeradius[15947]: segfault at 2012 ip 00007f7a9586f5da sp 00007f7a427fac60 error 4

May  1 00:00:15 billing kernel: [466821.810849] freeradius[15991]: segfault at 2012 ip 00007f7a9586f5da sp 00007f7a1a7f2c60 error 4 in rlm_perl-2.2.6.so[7f7a9586c000+6000]

May  1 00:00:15 billing kernel: [466821.811111]  in rlm_perl-2.2.6.so[7f7a9586c000+6000]

May  1 00:00:15 billing kernel: [466821.812848]  in rlm_perl-2.2.6.so[7f7a9586c000+6000] in rlm_perl-2.2.6.so[7f7a9586c000+6000]

 

Информация о системе:

-  OC Debian-7.11.0 Linux  2.6.32-3-amd64

- Версия биллинга ABillS 0.56b/20140807

- freeradius: FreeRADIUS Version 2.2.6

- mysqld  Ver 5.1.47-1

- сервера доступа Mikrotik (12 шт.)

- абонентов on-line на 1.05.2019 00:00:00 - 5570

Большинство тарифных планов с помесячной абонентской платой, с распределением абонплаты, макс. время сессии - 65535 сек.

 

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

1 вариант 

- выставить в параметрах сервера доступа !Session-Timeout=0,  макс. время сессии - 0 сек, отключить  в crontab (1    0  *  *  *  root   /usr/abills/libexec/periodic daily

1    1  *  *  *  root   /usr/abills/libexec/periodic monthly)

- 1-го числа каждого месяца (или каждые сутки?) воспользоваться программой autozh.pl и по очереди по одному насу переинициализировать сессии для сбора статистики.

 

2 вариант

В дополнении к первому пересобрать радиус на более свежий из второй ветки - 2.2.10. Возможно. проблема в нем. Плюс доработать скрипт, что следит за состоянием радиус-сервера (типа if [ -z "$(ps x | grep free[rad])" ]; then date >> /root/die.log;rm -f /var/run/freeradius/freeradius.pid;/etc/init.d/freeradius stop;/etc/init.d/freeradius start; fi)

 

3 вариант

В тарифных планах отказаться от месячной абонплаты  и настроить дневную абонентскую плату. В crontab оставить только periodic daily. Возможно это сделает нагрузку на биллинг более равномерной.

 

4 вариант 

Апгрейд биллинга до последней версии  - возможно модуль rlm_perl будет работать стабильнее. Интересует целесообразность и цена обновления.

 

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

P.S. Может у кого есть autozh.pl для 0.5x версии биллинга? Скиньте, пожалуйста!

Edited by MorS
Link to post
Share on other sites

Я бы сказал что падает он от криво настроенного log rotate, а не от роста нагрузки.

Проверяйте как он hup отрабатывает.

Link to post
Share on other sites
3 часа назад, MorS сказал:

OC Debian-7.11.0 Linux  2.6.32-3-amd64

Не пора ли обновить? Debian 7 протух год назад.

 

Правильно выше про logrotate. Добавлю, проверьте еще задания cron которые выполняются в это время.

Edited by foreverok
Link to post
Share on other sites
14 часов назад, zulu_Radist сказал:

а раньше не падал?

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

Link to post
Share on other sites

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

Edited by zulu_Radist
Link to post
Share on other sites
17 часов назад, zulu_Radist сказал:

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

То есть вариант перейти на последнюю версию биллинга не рассматривается, как ненужный? B 0.5x уже не поддерживается разработчиками с 2018 года.

Edited by MorS
Link to post
Share on other sites
1 час назад, MorS сказал:

То есть вариант перейти на последнюю версию биллинга не рассматривается, как ненужный? B 0.5x уже не поддерживается разработчиками с 2018 года.

можете конечно, только на выходе можете получить вполне себе НЕрабочий биллинг

Link to post
Share on other sites
18 часов назад, zulu_Radist сказал:

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

У нас два мікротіка Х86 на серверах. Для них радіус відпрацьовує добре. Розвернув Ацель. При авторизації на Ацелі (1000+ абонів) Радіус падає до рестарта. Аббілс 0.59

Link to post
Share on other sites
5 часов назад, Digital_storm сказал:

У нас два мікротіка Х86 на серверах. Для них радіус відпрацьовує добре. Розвернув Ацель. При авторизації на Ацелі (1000+ абонів) Радіус падає до рестарта. Аббілс 0.59

ок,  а что мешает поднять несколько радиус серверов,  раз на то пошло,  акцель умеет работать так. 

Link to post
Share on other sites
7 часов назад, MorS сказал:

То есть вариант перейти на последнюю версию биллинга не рассматривается, как ненужный? B 0.5x уже не поддерживается разработчиками с 2018 года.


поправочка: 0.59 - 2016 год
Насколько помню у абиллса всегда политика поддержки = обновитесь до последней и тогда уже поехали по багам.
Работать-то оно будет, но "разбирайтесь сами". Подсмотреть в новые версии публичные никто никогда не мешает.

 

Link to post
Share on other sites
В 03.05.2019 в 20:26, zulu_Radist сказал:

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

Зулу я с этим посуточным мучаюсь уже лет 8. Есть две сети, разные места. Везде биллинг стг, так вот тариф допустим 150-170 грн. Хорошо когда месяц 30 дней и тариф 150 грн - снимается по 5 грн в сутки абонки и все. А вот когда 31 день и тариф 150-170, вот тогда ничинаются фокусы. стг делит 150 на 31 и естественно сутки не целое число. И в последний день месяца вылазят какие минимальные копейки в минусе и абона отключает не 1 числа а 31го числа. Делали фокус-скрипт, который в конце месяца сравнивает абонплату за месяц и смотрит остаток в последний день, а потом обнуляет минус. Но он вроде как работает только если абонент вовремя пополнил счет (до конца месяца заплатил за следующий). Если же абонент завтыкал и платит 1-2-3 числа, абонка уже в минусе + месячная абонка и в конце этого нового месяца у него уже копейки в минусе. Уточню что абонов приучил, что месяц у нас с 1 числа по 31 и вариант с 4го по 4 не катит. Может есть у кого идеи как победить мою беду? а то у меня 31-1 число каждый месяц танцы с бубном

Edited by Romeshik
Link to post
Share on other sites
22 minutes ago, Romeshik said:

Зулу я с этим посуточным мучаюсь уже лет 8. Есть две сети, разные места. Везде биллинг стг, так вот тариф допустим 150-170 грн. Хорошо когда месяц 30 дней и тариф 150 грн - снимается по 5 грн в сутки абонки и все. А вот когда 31 день и тариф 150-170, вот тогда ничинаются фокусы. стг делит 150 на 31 и естественно сутки не целое число. И в последний день месяца вылазят какие минимальные копейки в минусе и абона отключает не 1 числа а 31го числа. Делали фокус-скрипт, который в конце месяца сравнивает абонплату за месяц и смотрит остаток в последний день, а потом обнуляет минус. Но он вроде как работает только если абонент вовремя пополнил счет (до конца месяца заплатил за следующий). Если же абонент завтыкал и платит 1-2-3 числа, абонка уже в минусе + месячная абонка и в конце этого нового месяца у него уже копейки в минусе. Уточню что абонов приучил, что месяц у нас с 1 числа по 31 и вариант с 4го по 4 не катит. Может есть у кого идеи как победить мою беду? а то у меня 31-1 число каждый месяц танцы с бубном

 

Как правильно сделать расчет фиксированной абоненты при разной длине месяца я подробно объяснял автору стг еще... дай бог памяти, году эдак в 1997. Не сложилось. Видимо, никак это не исправить в стг.

Link to post
Share on other sites
В 04.05.2019 в 23:47, vop сказал:

 

Как правильно сделать расчет фиксированной абоненты при разной длине месяца я подробно объяснял автору стг еще... дай бог памяти, году эдак в 1997. Не сложилось. Видимо, никак это не исправить в стг.

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

Link to post
Share on other sites
В 04.05.2019 в 23:21, Romeshik сказал:

Зулу я с этим посуточным мучаюсь уже лет 8. Есть две сети, разные места. Везде биллинг стг, так вот тариф допустим 150-170 грн. Хорошо когда месяц 30 дней и тариф 150 грн - снимается по 5 грн в сутки абонки и все. А вот когда 31 день и тариф 150-170, вот тогда ничинаются фокусы. стг делит 150 на 31 и естественно сутки не целое число. И в последний день месяца вылазят какие минимальные копейки в минусе и абона отключает не 1 числа а 31го числа. Делали фокус-скрипт, который в конце месяца сравнивает абонплату за месяц и смотрит остаток в последний день, а потом обнуляет минус. Но он вроде как работает только если абонент вовремя пополнил счет (до конца месяца заплатил за следующий). Если же абонент завтыкал и платит 1-2-3 числа, абонка уже в минусе + месячная абонка и в конце этого нового месяца у него уже копейки в минусе. Уточню что абонов приучил, что месяц у нас с 1 числа по 31 и вариант с 4го по 4 не катит. Может есть у кого идеи как победить мою беду? а то у меня 31-1 число каждый месяц танцы с бубном

это "размазанная" оплата, сделайте посуточную (т.е. к примеру 5 грн сутки, мес 30 д - 150 грн, 31 день - 155 грн), и проблем не будет.

Link to post
Share on other sites
3 часа назад, Romeshik сказал:

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

вся суть идеи vop простая

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

всё

 

В 04.05.2019 в 21:15, mixtery сказал:

2016 год

сегфолтится rlm_perl и этим всё сказано

либо бага в перловом колбеке либо в либе радиуса

без трейса вряд ли можно отловить кто из двух уиноват

Link to post
Share on other sites
4 hours ago, Romeshik said:

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

 

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

 

У вас есть абонплата - фиксированная цена за - один календарный месяц - период переменной длительности (31, 30,29 или 28  дней). Т.е. у вас есть расчетный период - один месяц. Независимо от его длительности. Это значит, что в лицевом счет должна появляться одна-единственная запись по окончанию расчетного периода - начисление за этот период.

 

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

 

Вы же сможете двумя арифметическими операциями определить, сколько стоит услуга, предоставлявшаяся 1 день в месяц, 12, 23 или 30? Для любой длительности месяца? Эта стоимость является свойством продаваемой вам услуги. Точнее, свойством ресурса, который вы продаете. И это свойство попадет в лицевой счет, как выше писалось, только в конце расчетного периода.

 

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

 

Я не знаю, как это сделать в стг.

 

56 minutes ago, l1ght said:

вся суть идеи vop простая

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

всё

 

Про два поля - интересно. :) Что вы имели в виду?

У меня - целочисленная арифметика вообще без каких-либо дробных частей. Учет ведется в единицах, в 10 раз меньших минимальной денежной единицы. Т.е. назовем условно деци-копейки. Использование арифметики с плавающей запятой для целочисленных величин, мягко говоря, совсем не разумно.

 

Link to post
Share on other sites
34 минуты назад, vop сказал:

Про два поля - интересно. :) Что вы имели в виду?

Очевидно для поля в РСУДБ. Бабло ж в надежной базе храним.

34 минуты назад, vop сказал:

Учет ведется в единицах, в 10 раз меньших минимальной денежной единицы

Я помню просто был тема что нужно единицы хранить отдельно от "копеек" в двух разных целочисленных полях.

Link to post
Share on other sites
1 hour ago, l1ght said:

Очевидно для поля в РСУДБ. Бабло ж в надежной базе храним.

 

Понятно. Бабло храним в надежной базе. :)

 

1 hour ago, l1ght said:

Я помню просто был тема что нужно единицы хранить отдельно от "копеек" в двух разных целочисленных полях.

 

Видимо, это было без меня.

Link to post
Share on other sites
7 часов назад, vop сказал:

Видимо, это было без меня.

Ну может память подводит, придется тред поискать.

Link to post
Share on other sites
7 hours ago, l1ght said:

Ну может память подводит, придется тред поискать.

 

Вопрос не столь принципиален, но если желание есть, было бы интересно почитать. :)

Edited by vop
Link to post
Share on other sites
50 минут назад, vop сказал:

 

Вопрос не столь принципиален, но если желание есть, было бы интересно почитать. :)

Не смог найти.

Может это был плод моей подбитой фантазии.

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 SerSkiner
      Доброго времени суток колеги!после долгого пинания Микротика в качестве НАС возникло желание попробовать Accel-ppp. В связи с этим такой вопрос может кто-то поделиться конфигами НАС для Юбиллинга(а еще если есть пример конфига)Настроить планирую роздачу адресов Асселем без QinQ.Заранее большое спасибо
    • By vector_zuriel
      Везде есть черная тема и тепер она и в ABillS 
      Как вам ?




    • By Nekut
      Данный модуль рисует столбчатые диаграммы показывая количество подключенных абонентов за год.

      Кого заинтересовало, пишите

    • By strushke
      Всем привет! Все таки решил перейти на radius и вот вам новые вопросы с траблами.
       
      Во-первых, версия 
      1.0.7
      Во-вторых, 
      мануал говорил, что в freebsd 12 можно просто переходить ко включению поддержки в ubilling, но это не так
      Нужно не забыть перетащить настройки и дамп базы для freeradius 3. 
      В-третьих, 
      Надо ли говорить, что radiusd -X стартует и ждет нормально, в то время как на radtest отвечает
      Ignoring request to auth address * port 1812 bount to server default from unknown client 127.0.0.1... поскольку, при создании сети, скажем, 10.0.114.0
      и добавлении NAS с адресом, к примеру, 10.0.114.1, в конфиге clients.conf не появляется ничего. 
       
      И еще маленькая деталь: уже в разделе настройки mtik на скрине я увидел, что при создании сети есть пункт Radius, а у меня такого пункта нет, хотя все опции в alter точно по мануалу.
       
      Конечно, тут про мтик рано говорить, но такое название, чтобы не городить топиков в дальнейшем с вопросами про mtik
    • By Nekut
      Если кто-то работал с кодом абилса или писал модуля для него, отзовитесь пожалуйста. 
      Нужно подсказать пару моментов их собственного шаблонизатора. 
×
×
  • Create New...