Перейти до

Рекомендованные сообщения

Опубліковано: (відредаговано)
Потому что бл@#ь всё в том же FAQ есть ссылка на документацию по старгейзеру.

это вы сейчас об этом?:

 

SpreadFee
– обязательный параметр, указывающий серверу производить
ли «размазанное» снятие абонплаты. Может принимать значения yes и no.
При указании значения yes сумма абонплаты указанная в тарифе
пользователя будет сниматься не раз в месяц, а каждый день равными
долями. Стандартное значение: no.

так здесь тоже нигде не сказано, что

 

 

Стоимость тарифа делим на кол-во дней в месяце - получаем суточную стоимость тарифа.

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

 

 

 

Потом читаем форум, а уже потом пишем.

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

 

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

 

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

 

и, кстати, есть ли простой способ убрать alert'ы "Вы это серьезно?" - после 10-го окошка начинает поднадоедать...

 

о!, еще вдогонку по ДХЦП:

создаю я ДХЦП, скажем: 192.168.5.0/24. в "Сетях и услугах" добавляю сеть: 192.168.5.1-192.168.5.253, добавляю услугу с этой сетью. потом, пытаясь выбрать у абонента в карточке IP, обнаруживаю, что адрес 192.168.5.1 недоступен. происходит это, скорее всего потому, что 192.168.5.1 прописывается по-умолчанию в option routers в dhcpd.conf. внимание, вопрос: можно ли как-нибудь без применения "Персонального шаблона подсети DHCP" изменить это поведение, чтобы по-умолчанию option routers ставился бы {ENDIP} + 1 ? ...  Поторопился я с шаблоном... {ENDIP} + 1 и {ENDIP + 1} вообще разворачивается в 192.168.5.254 + 1. Исправил подсеть, сделав последний адрес 192.168.5.254 (192.168.5.1-192.168.5.254) и добавил в "Персональный шаблон подсети DHCP" строку option routers {ENDIP}; . Пошел в карточку абонента выбирать IP - не помогло: 192.168.5.1 все так же недоступен для выбора, зато 192.168.5.254 - доступен. Что-то непонятка...

Відредаговано bobr-kun
Опубліковано:

 

 

не думайте, что не читаем. вопрос про начисление абонплаты за время простоя сервера уже поднимался минимум один раз

На форуме уже 150 раз жевали про типы АП. Их внезапно всего два - нормальный и размазанный. Есть подневные тарифы, есть помесячные, всё это обсуждалось с комментариями либо madf либо понимающих людей ;)

 

По поводу места в коде - ищите, поймете тривиальную структуру убиллинга и не будете задвавать вопросов где, что и как искать.

Ну и освойте себе netbeans, гораздо быстрее ваше разбирательство пройдет за счет констуркции ctlr + left click на имя функции ;)

Опубліковано: (відредаговано)
На форуме уже 150 раз жевали про типы АП. Их внезапно всего два - нормальный и размазанный. Есть подневные тарифы, есть помесячные, всё это обсуждалось с комментариями либо madf либо понимающих людей ;)

да услышьте же меня!!11111! тут не о типах АП речь(вопросы по типам АП я, вроде, уже все задал...), а о том, как посчитать АП за время ПРОСТОЯ сервера, если таковой(простой, то бишь) имел место случиться... если такого механизма нет, и нет желания рассусоливать, где конкретно по тексту кода будет уместнее всего его внедрить - то просто скажите: в данный момент так сделать нельзя НИКАК, а хочешь сам внедрить - ищи-колупай. хотя я был бы благодарен хотя бы за пинок в направлении страгейзера или, собственно, убиллинга в плане того ГДЕ лучше это внедрять, но, судя по тому, что модуль Достоевского работает, как я понимаю, "в среде" убиллинга - то и эту хотелку, по идее, можно реализовать имено в убиллинге....

 

 

 

Ну и освойте себе netbeans, гораздо быстрее ваше разбирательство пройдет за счет констуркции ctlr + left click на имя функции ;)

да и PHPStrom в этом плане весьма неплох... ;)

Відредаговано bobr-kun
Опубліковано: (відредаговано)

и все же, как сделать так, чтобы из подсетей, например, 192.168.5.0/24, 192.168.6.0/24 и т.д., абонентам были доступны адреса с 1-го по 253-й, а не как сейчас со 2-го по 253-й...

то есть, чтобы был доступен именно указанный диапазон ВЕСЬ(192.168.5.1-192.168.5.253)...

 

или...может...мне вообще не нужно в убиллинге добавлять ДХЦП-сети, если машина с убиллингом НЕ является ДХЦП-сервером, а им является Mikrotik NAS?
post-25487-0-30251200-1493362448.png

 

но даже после удаления всех ДХЦП-сетей все равно в карточке абонента в выпадающем списке IP адресов выбор "начинается" со второго адреса...

Відредаговано bobr-kun
Опубліковано:

 

 

да услышьте же меня!!1111

Когда я говорю, что вопросы про АП уже обсосали на форуме - их уже обсудили и это в том числе.

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

И как снимать АП за время простоя уже тоже было. И нахуя вам биллинговый сервер, если можно допустить его простой в пару суток - этот вопрос тоже обсуждался.

Опубліковано:

 

 

и все же, как сделать так, чтобы из подсетей, например, 192.168.5.0/24, 192.168.6.0/24 и т.д., абонентам были доступны адреса с 1-го по 253-й, а не как сейчас со 2-го по 253-й...

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

Могу разве что дать намек что сетями внезапно занимается networking ;)

Опубліковано: (відредаговано)
что нигде не сказанно, как считается размазня

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

 

 

 

И как снимать АП за время простоя уже тоже было. И нахуя вам биллинговый сервер, если можно допустить его простой в пару суток - этот вопрос тоже обсуждался.

"обсуждения" как такового я не обнаружил. были только выпады в сторону ТСа вот как раз типа вашей реплики

 

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

 

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

Відредаговано bobr-kun
  • 1 month later...
Опубліковано:

Всем снова доброго времени суток!

Пока писал-ковырял свои мелкие  хотелки, да вносил минмальные багфиксы, а потом еще и обновился до 0.8.2 rev 5482 сегодня ВНЕЗАПНО обнаружил, что перестала работать синхронизация с Mikrotik, мать его... Правда тестовый микротик с тех пор поменялся, но не думаю, что это сильно важно.

Суть в том, что в сервера доступа NAS микротик добавлен, "волшебная" кнопка "Расширенная настройка" - есть, по нажатию этой кнопки в эту самую расширенную настройку я попадаю, все данные, которые должны подтягиваться с микротика, а именно интерфейсы, общая инфорация о состоянии - все подтягивается. Поскольку микротик тестовый - "галочки" для On*-скриптов отмечены все(как в принципе было и ранее, с первым тестовым микротиком, когда все ще работало). Проблема же заключается в том, что никаких вообще данных о тестовых абонентах на микротике не появляется: беру рандомного тестового абона, делаю ему отрицательный баланс на счету/снова делаю положительный баланс/делаю просто "ресет пользователя" - и ничего не происходит. Нет записей ни в Access List'ах, ни в арп, нигде.

Такое впечатление, что не отрабатывают эти самые On*-скрипты, хотя каталог старгейзера никто не трогал вообще - то есть там все в том виде, в каком оно было, когда это все еще работало.

Собственно - вопрос: как это можно отдебажить, проследить ход выполения, хотя бы увидеть где-то, что, например, Script OnDisconnect started или там Script OnDisconnect failed.

З.Ы. до сих пор не знаю, имеет ли это значение, но считаю обязательным упомянуть: на новом тестовом микротике нет поднятого дхцп или прописанных абонентских подсетей на "Интерфейсе пользователей". И да, тестовый микротик и серевер Убиллинга НЕ находятся в одном сетевом сегменте(в одной подсети) - может это тоже имеет значение...

По сути, мне сейчас очень хочется увидеть пару добавленных в Access List записей с именем ALLOW и IP-шниками абонов...

Опубліковано: (відредаговано)

Итак, мои изыскания по последнему вопросу, а именно - синхронизации с микротиком.

Но для начала - мои мысли по поводу "как все происходит"(очень прошу пнуть в верном направлении, если они не верны):

1. При запуске страгейзер добавляет всех, кому можно в инет, в ALLOW address-list на микротике. Соответственно, записи тех, кому нельзя он делает disabled=1. Если записи абонента нет вообще в ALLOW address-list на микротике - он должен ее добавить и флаг disabled выставить в соответствии с текущим статусом абонента.

2. Если я в Убиллинге сделаю абоненту отрицательный баланс на счету - старгейзер должен сделать его запись disabled=1 в ALLOW address-list на микротике

3. Если я в Убиллинге снова сделаю абоненту положительный баланс на счету - старгейзер должен сделать его запись disabled=0 в ALLOW address-list на микротике

4. Если я в Убиллинге меняю абоненту IP - старгейзер должен поменять IP в ALLOW address-list на микротике

5. Если я в Убиллинге делаю ресет абоненту - старгейзер должен перепроверить и, при необходимости, добавить в ALLOW address-list, а так же флаг disabled выставить в соответствии с текущим статусом абонента.

 

Я ничего не говорил про то, что старгейзер может так же провести манипуляции с DHCP-лизами, ARP-записями и прочим, поскольку мне важнее всего именно манипуляции в ALLOW address-list.

 

В данный момент я сделал вывод, что скрипты On* у меня не отрабатывают вообще. От слова совсем. Как я это определил? Следующим образом:

в каталоге billing/api есть три каталога: sgconf, sgconfxml и xmlrpc. В каждом из трех каталогов есть файл handlers.php. Поскольку я точно не знал, какой именно handlers.php использует "мой" Убиллинг, то в каждый из них в function executor() я добавил строку:

file_put_contents('/var/log/stargazer/STG_executor.log', date("Y-m-d H:i:s") . ' ' .  'cmd string:  ' . $configurator . "\n", FILE_APPEND);

 аккурат перед 

shell_exec($configurator);

Далее, такую же строчку, только со слегка измененным текстом, который записывается в лог я добавил в OnConnect, OnDisconnect, OnChange и в конструктор класса ubilling.cls, который лежит в /etc/stargazer/system

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

 

2017-06-16 15:46:20 cmd string:  /usr/sbin/sgconf_xml -s localhost -p 5555 -a admin -w 123456 -r '<SetUser><login value="test" /><down value="0" /></SetUser>'
2017-06-16 15:48:05 cmd string:  /usr/sbin/sgconf_xml -s localhost -p 5555 -a admin -w 123456 -r '<SetUser><login value="test" /><down value="1" /></SetUser>'
2017-06-16 15:48:05 cmd string:  /usr/sbin/sgconf_xml -s localhost -p 5555 -a admin -w 123456 -r '<SetUser><login value="test" /><ip value="10.205.0.5" /></SetUser>'
2017-06-16 15:48:06 cmd string:  /usr/sbin/sgconf_xml -s localhost -p 5555 -a admin -w 123456 -r '<SetUser><login value="test" /><down value="0" /></SetUser>'

 

а вот строчки из On* скриптов и ubilling.cls - не отрабатывают. из чего я делаю вывод, что и сами скрипты, собственно - никем не запускаются. кстати, если запустить модифицированный скрипт руками - получим: Only STG can run script! в консоли и вожделенную запись в /var/log/stargazer/STG_executor.log.

 

Дальше у меня идеи кончились.... Почему старгейзер может игнорировать On* скрипты? Права на эти файлы еще раз перепроверил...

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

Відредаговано bobr-kun
Опубліковано: (відредаговано)

Итак, продолжение борьбы.

Вчера решил попробовать запустить один из On* скриптов руками. Выбор пал на OnConnect. Предварительно встроил в ubilling.cls, file.drv и mysql.drv "дебаггинговые" записи в отдельный лог.

В итоге, после выполнения комманды

php -f OnConnect <all_needed_params>

- все "взлетело", в микротике появились: address-lists ALLOW, запись в simple queue и запись в ARP. Старгейзер же упорно не хотел этого делать по велению Убиллинга, хотя в том же stargazer.log исправно появлялись записи:

 

2017-06-22 15:43:23 -- Admin 'admin', 127.0.0.1: User '2ap0_5xw8': 'cash' parameter changed from '-42.571429' to '4.428571'.

или

2017-06-22 15:44:16 -- Admin 'admin', 127.0.0.1: User '2ap0_5xw8': 'disabled' parameter changed from '1' to '0'.

2017-06-22 15:45:56 -- Admin 'admin', 127.0.0.1: User '2ap0_5xw8': 'disabled' parameter changed from '0' to '1'.

то есть, Убиллинг таки комманды Старгейзеру давал и они до него "добирались", но вот выполнение On* скриптов почему-то тупо не происходило.

 

В итоге я психанул и снес Страгейзер с благой мыслью переустановить. Переустановил, едрить его за ногу. Теперь он не стартует вообще. После выполнения в консоли stargazer происходит что-то такое(это я сам энтером "проклацал", чтобы, так сказать, виднее было):

post-25487-0-58627600-1498200185_thumb.png

и все. так оно "висит" может с минуту, может с две потом управление консолью возвращается, в процессах видим stg-exec, но не видим stargazer, в stargazer.log появляются три строчки:

 

2017-06-23 09:13:58 -- Stg v. 2.409
2017-06-23 09:13:58 -- Message queue created successfully. msgKey=5555 msgID=196608
2017-06-23 09:13:58 -- Timer thread started successfully.

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

Кудой копать?

 

а, и да, SIGTERM теперь на stg-exec и stargazer не действует. только SIGKILL...

Відредаговано bobr-kun

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Створити нове...