Биллинговая система Nodeny
29 Марта 2024, 02:42:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: Mikrotik+Nodeny проблема созданием абонов и вторым сателитом.  (Прочитано 8711 раз)
klu4ik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 23


Просмотр профиля Email
« : 16 Октября 2012, 10:26:43 »

Привет.
Может кто помочь разрулить ситуацию?

Есть Nodeny , на нем настроена связка с микротиком (Без Радиуса) в Hw_Mikrotik прописан ип, логин, пароль микротика.
На микротике включен API.
Проблема в том что скрипт не может (а иногда может) создать всех абонентов в микротике.
Запускаю ./noserver.pl -v
если запустить первый раз -
может создать 200 абонов,
второй раз может создать 350,
третий 150,
на четвертый раз может взять и создать всех абонов.
В сети 1000 абонентов.

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

Не пойму в чем проблема, в nofire.pl, время синхронизации: $NF_t_check=3600;
Остальное впринципе все по дефолту..

Вторая проблема:

Нужно создать еще один сателит с микротиком.

делал по инструкции: forum.nodeny.com.ua/index.php?topic=448.msg4316#msg4316
Не нашел нигде у себя файла : nosat.pm (но без него работает)

Если вручную запустить ./mikrotik.pl -v - все работает
Если с автозагрузки - то нет.
Хотя в процессах Mikrotik.pl висит, а вот на микротик не логиниться.

Cкрипты автозагрузки:

Главный сателит:

nodeny# cat go_noserver.sh

Код:
#!/bin/sh

prg='nice -n -15 perl /usr/local/nodeny/noserver.pl -v'

${prg} -nowait
sleep 10
${prg} -nowait
sleep 10

while true
do
 ${prg}
 sleep 2
done

Второй сателит:

nodeny# cat go_mikrotik.sh
Код:
#!/bin/sh

prg='nice -n -15 perl /usr/local/nodeny/mikrotik/mikrotik.pl'

${prg} -nowait
sleep 10
${prg} -nowait
sleep 10

while true
do
 ${prg}
 sleep 2
done


Скрипт автозагрузки в /usr/local/etc/rc.d/nodeny:

nodeny# cat nodeny

Код:
#!/bin/sh

# PROVIDE: nodeny
# REQUIRE: NETWORKING SERVERS mysql

cd /usr/local/nodeny/
nohup sh go_kernel.sh &
nohup sh go_nol2auth.sh &
nohup sh go_noserver.sh &
nohup sh /usr/local/nodeny/mikrotik/go_mikrotik.sh &

Пробовал увеличивать время в параметре "sleep" - безрезультатно.

Заранее спасибо за ответы Улыбающийся
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #1 : 16 Октября 2012, 10:34:26 »

я бы посмотрел на php api микротика и через него управлять
что-то типо:
дернуть значения те, что есть.
$getmikrotikarray = $API->comm("/ip/firewall/address-list/print" , array (".proplist" => "address",  "?list" => $ros_list, ));

так удалять
$API->write("/ip/firewall/address-list/print",false);
   $API->write("?list=$ros_list",false);
   $API->write("?address=$remove",false);
   $API->write("=.proplist=.id");
   $READ = $API->read();
   $i=0;
   foreach   ($READ as $x) {
           $line=$READ[$i];
           $id=$line['.id'];
           sleep(1);

        $API->write("/ip/firewall/address-list/remove",false);
        $API->write("=.id=$id",true);
        $API->read();
        $i++;
#       usleep(5000);
}}}

так добавлять
$API->comm("/ip/firewall/address-list/add", array("list" => $ros_list, "address" => $add,));

на сотне клиентов работает без глюков.
вот только до шейперов руки не дошли.
с ними чуть сложнее

а насчет второго сателлита я как-то писал уже, что нужно делать.
у меня к одной базе подключено 4 саттелита.
2 фрибсд, микротик и циска.
все разные сети, тарифы, группы
Записан
klu4ik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 23


Просмотр профиля Email
« Ответ #2 : 16 Октября 2012, 13:13:17 »

я в програмировании полный ноль.
это всю систему придеться переделывать?

насчет сателитов, ты имеешь ввиду это сообщение?:
/index.php?topic=448.msg4331#msg4331
Записан
klu4ik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 23


Просмотр профиля Email
« Ответ #3 : 16 Октября 2012, 14:12:11 »

может еще какой-то параметр времени синхронизации можно поменять??
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #4 : 16 Октября 2012, 14:44:56 »

тут нужно отладку смотреть, где тупит.
Записан
klu4ik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 23


Просмотр профиля Email
« Ответ #5 : 18 Октября 2012, 10:03:14 »

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

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

Карма: 0
Offline Offline

Сообщений: 23


Просмотр профиля Email
« Ответ #6 : 18 Октября 2012, 10:18:46 »

stimels

а с сателитами как поступить, нет никаких идей?
Записан
klu4ik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 23


Просмотр профиля Email
« Ответ #7 : 18 Октября 2012, 11:49:34 »

только-что оставил только один сателит в автозагрузке (второй, тот что не стартует ) и он также не запустился при старте системы хотя в процессах есть.
Так что подозрение на то что это конфликт между первым сателитом и вторым у меня отпало..
Что же это может тогда быть ? Строит глазки
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #8 : 18 Октября 2012, 13:17:40 »

нужно смотреть.
у меня 2 микротик сателлита работало
Записан
klu4ik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 23


Просмотр профиля Email
« Ответ #9 : 18 Октября 2012, 13:43:37 »

вот что еще:

убираю все из автозагрузки.
Стартую..
Ввожу :
sh /usr/local/nodeny/go_noserver.sh

выводит:

Код:
nosrvr: # Connecting to DB on server localhost: OK
nosrvr: # Connecting to DB on server localhost: OK
nosrvr: # Connecting to DB on server localhost: OK
nosrvr: # Connecting to DB on server localhost: OK
nosrvr: # Connecting to DB on server localhost: OK

Останавливаю..
Запускаю так:

nodeny# /usr/local/nodeny/noserver.pl -v

Код:
nosrvr: # Connecting to DB on server localhost: OK
nosrvr: # 18.10.2012 14:22:19 Starting noserver
nosrvr: # Loading tarifs
nosrvr: sql # SELECT * FROM plans2
nosrvr: # Show only 6:
id: 1 preset: 0 speed: 7000 speed_out: 7000 speed2: 0 flags: ab
id: 2 preset: 0 speed: 1024 speed_out: 512 speed2: 0 flags: a
id: 3 preset: 0 speed: 1000 speed_out: 1000 speed2: 0 flags: a
id: 4 preset: 0 speed: 8000 speed_out: 8000 speed2: 0 flags: a
id: 5 preset: 0 speed: 256 speed_out: 256 speed2: 0 flags:
id: 6 preset: 0 speed: 10000 speed_out: 1024 speed2: 0 flags: a
[nofire] Synchronization
[hw_mikrotik] start connecting to the mikrotik
[hw_mikrotik] [ ->] /login
[hw_mikrotik] [<- ] !done
[hw_mikrotik] [<- ] =ret=127904707f07f1027012312
[hw_mikrotik] [ ->] /login
[hw_mikrotik] [ ->] =name=bill
[hw_mikrotik] [ ->] =response=00fb90283132423884
[hw_mikrotik] [<- ] !done
[hw_mikrotik] [ ->] /ip/firewall/address-list/print
[hw_mikrotik] [<- ] !re
[hw_mikrotik] [<- ] =.id=*A
[hw_mikrotik] [<- ] =list=25
[hw_mikrotik] [<- ] =address=10.168.1.0/24
[hw_mikrotik] [<- ] =dynamic=false
[hw_mikrotik] [<- ] =disabled=false
....

тоесть пошло..
беру, опять запускаю:

sh /usr/local/nodeny/go_noserver.sh

Работает!

Не понимаю...
После перезагрузки опять тоже самое.

Куда копать?
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #10 : 18 Октября 2012, 13:47:14 »

mikrotik может тупить
Записан
klu4ik
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 23


Просмотр профиля Email
« Ответ #11 : 18 Октября 2012, 14:37:57 »

короче.
получаеться что скрипты запускаються только из корневой папки.

тоесть если в rc.d : nohup sh /usr/local/nodeny/mikrotik/go_mikrotik.sh &
не работает.

Ладно.
Создал символьную ссылку из /usr/local/nodeny/mikrotik/go_mikrotik.sh в---> /usr/local/nodeny/go_mikrotik.sh
Запускаю, и он начинает конектиться не к тому сателиту который прописан в конфиге, а к гавному..
Непойму..

Код:
Переделал файл в rc.d :
#!/bin/sh

# PROVIDE: nodeny
# REQUIRE: NETWORKING SERVERS mysql

cd /usr/local/nodeny/
nohup sh go_kernel.sh &
nohup sh go_nol2auth.sh &
nohup sh go_noserver.sh &
cd /usr/local/nodeny/mikrotik/
nohup sh go_mikrotik.sh &

вот так работает.

Всеравно интересно почему все работает если запускать конкретно из корневого каталога, и почему подменяються настройки сателита.
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #12 : 18 Октября 2012, 14:40:01 »

возможно, я в скриптах везде указывал полные пути
Записан
klu41k
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 39



Просмотр профиля Email
« Ответ #13 : 10 Ноября 2012, 12:00:38 »

проблема с тем что не создавались абоны была связана с флешкой, перекинул на винт и стало нормально.
Записан
klu41k
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 39



Просмотр профиля Email
« Ответ #14 : 23 Ноября 2015, 15:51:33 »

В общем, после того как абонентов стало больше 1000 проблема с созданием Queues и goodboys вернулась. Иногда после перезапуска noserver.pl начинает работать, но редко. При запуске вручную видно, что скрипт выполняет команды от NoDeny, но на микротике ничего не происходит. Куда копать, подскажите?
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!