BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 13 май 2024, 02:35

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 21 сен 2014, 18:56 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
хочу использовать этот активатор для добавления IP в списки доступа на микротике.

конфиг типа устройств
Код:
sa.command.exit=exit
sa.command.disconnect=quit
sa.endSequence=>
sa.command.timeout=60000

#Команды включения сервиса на устройстве
sa.command.serv.enable.1=
#Команды выключения сервиса на устройстве
sa.command.serv.disable=
#Команды создания сервиса на устройстве.
sa.command.serv.create.1=
#Команды удаления сервиса с устройства.
sa.command.serv.cancel=
#Команды включения соединения на устройстве
sa.command.connection.enable.1=
#Команды выключения соединения на устройстве
sa.command.connection.disable.1=
#Команды закрытия соединения на устройстве.
sa.command.connection.close=
#Команды на начало аккаунтинга (старта соединения).
sa.command.onAccountingStart.1=/ip firewall address-list remove [/ip firewall address-list find comment=$ip]
sa.command.onAccountingStart.2=/ip firewall address-list add address=$ip list=list_NOMONEY comment=$ip
#Команды на окончание аккаунтинга (стоп соединения).
sa.command.onAccountingStop=/ip firewall address-list remove [/ip firewall address-list find comment=$ip]


лог выполнения:
Код:
09-21/16:38:22  INFO [main] DefaultServerSetup - Binding javax.jms.ConnectionFactory[org.apache.activemq.ActiveMQConnectionFactory@1293709] to java:comp/env/mq/connectionFactory
09-21/16:38:22  INFO [main] DefaultServerSetup - Init DB connection pools
09-21/16:38:22  INFO [main] DefaultServerSetup - Binding JDBC pool "master" to java:comp/env/jdbc/master
09-21/16:38:22  INFO [main] AnnotatedMBean - Register MBean ru.bitel.bgbilling.server.util:type=DatabaseConnectionPool,name=master
09-21/16:38:23  INFO [main] DefaultServerSetup - Init trash pools..
09-21/16:38:27  INFO [sa-p-13-t-1] ServiceActivatorSet - Connecting to device
09-21/16:38:27  INFO [sa-p-13-t-1] TelnetServiceActivator - Connecting 10.0.0.1:23, timeout: 60000
09-21/16:38:28  INFO [sa-p-13-t-1] TelnetServiceActivator - Connected
09-21/16:38:28  INFO [sa-p-13-t-1] TelnetServiceActivator - Password:
09-21/16:38:28  INFO [sa-p-13-t-1] TelnetServiceActivator - Login entered
09-21/16:38:38  INFO [sa-p-13-t-1] TelnetServiceActivator -

  MMM      MMM       KKK                          TTTTTTTTTTT      KKK

  MMMM    MMMM       KKK                          TTTTTTTTTTT      KKK

  MMM MMMM MMM  III  KKK  KKK  RRRRRR     OOOOOO      TTT     III  KKK  KKK

  MMM  MM  MMM  III  KKKKK     RRR  RRR  OOO  OOO     TTT     III  KKKKK

  MMM      MMM  III  KKK KKK   RRRRRR    OOO  OOO     TTT     III  KKK KKK

  MMM      MMM  III  KKK  KKK  RRR  RRR   OOOOOO      TTT     III  KKK  KKK



  MikroTik RouterOS 6.13 (c) 1999-2014       http://www.mikrotik.com/


[?]             Gives the list of available commands

command [?]     Gives help on the command and list of arguments



[Tab]           Completes the command/word. If the input is ambiguous,

                a second [Tab] gives possible options



/               Move up to base level

..              Move up one level

/command        Use command at the base level


  n



[bill@HOME31-GW] >                                                             
[bill@HOME31-GW] >
09-21/16:38:38  INFO [sa-p-13-t-1] TelnetServiceActivator - Password entered
09-21/16:38:38  INFO [sa-p-13-t-1] ServiceActivatorDeviceWorker - Do task deviceId: 2; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaAccountingEvent] moduleId: 1; pluginId: no; cid: 3; scid: -1; userId: 0; type: 1; deviceId: 2; connectionId: 37; timestamp: 1411303107655
09-21/16:38:38  INFO [sa-p-13-t-1] InetApplication - TariffOptionMap: {}
09-21/16:38:38  INFO [sa-p-13-t-1] InetApplication - OptionSet: []
09-21/16:38:38  INFO [sa-p-13-t-1] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=4; inetServId: 1; call: true; oldState: 1; newState: 1; oldOptionSet: ; newOptionSet:
09-21/16:38:38  INFO [sa-p-13-t-1] ServiceActivatorDeviceWorker - Processing deviceId:2; command ServiceActivatorEvent type=4; inetServId: 1; call: true; oldState: 1; newState: 1; oldOptionSet: ; newOptionSet:
09-21/16:38:38  INFO [sa-p-13-t-1] ServiceActivatorSet - Invoking onAccountingStart
09-21/16:38:38  INFO [sa-p-13-t-1] TelnetServiceActivator - execute: /ip firewall address-list remove [/ip firewall address-list find comment=100.64.33.87]
09-21/16:38:38  INFO [sa-p-13-t-1] TelnetServiceActivator - /ip firewall address-list remove [/ip firewall address-list
[bill@HOME31-GW] > /ip firewall address-list remove [/ip firewall address-list>
<list remove [/ip firewall address-list f                                     
<list remove [/ip firewall address-list find comment=100.64.33.87]
<list remove [/ip firewall address-list find comment=100.64.33.87]





[bill@HOME31-GW] >                                                             
[bill@HOME31-GW] >
09-21/16:38:38  INFO [sa-p-13-t-1] TelnetServiceActivator - execute: /ip firewall address-list add address=100.64.33.87 list=list_NOMONEY comment=100.64.33.87
09-21/16:38:38  INFO [sa-p-13-t-1] TelnetServiceActivator - /ip firewall address-list add address=100.64.33.87 list=list
[bill@HOME31-GW] > /ip firewall address-list add address=100.64.33.87 list=lis>
<list add address=100.64.33.87 list=list_                                     
<list add address=100.64.33.87
09-21/16:38:38  INFO [sa-p-13-t-1] ServiceActivatorDeviceWorker - Process event type[4] result=true
09-21/16:38:43  INFO [sa-p-13-t-1] ServiceActivatorSet - Disconnecting from device
IP добавил - все нормально отработал.
но далее он зачем то еще раз заходит, ничего не делает и выходит... и так каждую минуту.
лог этих заходов...
Код:
09-21/16:41:35  INFO [sa-p-13-t-29] ServiceActivatorSet - Connecting to device
09-21/16:41:35  INFO [sa-p-13-t-29] TelnetServiceActivator - Connecting 10.0.0.1:23, timeout: 60000
09-21/16:41:35  INFO [sa-p-13-t-29] TelnetServiceActivator - Connected
09-21/16:41:35  INFO [sa-p-13-t-29] TelnetServiceActivator - Password:
09-21/16:41:35  INFO [sa-p-13-t-29] TelnetServiceActivator - Login entered
09-21/16:41:45  INFO [sa-p-13-t-29] TelnetServiceActivator -

  MMM      MMM       KKK                          TTTTTTTTTTT      KKK

  MMMM    MMMM       KKK                          TTTTTTTTTTT      KKK

  MMM MMMM MMM  III  KKK  KKK  RRRRRR     OOOOOO      TTT     III  KKK  KKK

  MMM  MM  MMM  III  KKKKK     RRR  RRR  OOO  OOO     TTT     III  KKKKK

  MMM      MMM  III  KKK KKK   RRRRRR    OOO  OOO     TTT     III  KKK KKK

  MMM      MMM  III  KKK  KKK  RRR  RRR   OOOOOO      TTT     III  KKK  KKK



  MikroTik RouterOS 6.13 (c) 1999-2014       http://www.mikrotik.com/


[?]             Gives the list of available commands

command [?]     Gives help on the command and list of arguments



[Tab]           Completes the command/word. If the input is ambiguous,

                a second [Tab] gives possible options



/               Move up to base level

..              Move up one level

/command        Use command at the base level


  n



[bill@HOME31-GW] >                                                             
[bill@HOME31-GW] >
09-21/16:41:45  INFO [sa-p-13-t-29] TelnetServiceActivator - Password entered
09-21/16:41:45  INFO [sa-p-13-t-29] ServiceActivatorDeviceWorker - Do task deviceId: 2; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 1; pluginId: no; cid: 3; scid: -1; userId: 0; deviceId: 2; inetServId: 1; connectionId: 37; state: 0; accessCode: 63; timestamp: 1411303295310
09-21/16:41:45  INFO [sa-p-13-t-29] InetApplication - TariffOptionMap: {}
09-21/16:41:45  INFO [sa-p-13-t-29] InetApplication - OptionSet: []
09-21/16:41:45  INFO [sa-p-13-t-29] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=2; inetServId: 1; call: true; oldState: 1; newState: 0; oldOptionSet: ; newOptionSet:
09-21/16:41:45  INFO [sa-p-13-t-29] ServiceActivatorDeviceWorker - Processing deviceId:2; command ServiceActivatorEvent type=2; inetServId: 1; call: true; oldState: 1; newState: 0; oldOptionSet: ; newOptionSet:
09-21/16:41:45  INFO [sa-p-13-t-29] ServiceActivatorSet - Invoking connectionModify
09-21/16:41:45  INFO [sa-p-13-t-29] ServiceActivatorDeviceWorker - Process event type[2] result=true
09-21/16:41:50  INFO [sa-p-13-t-29] ServiceActivatorSet - Disconnecting from device


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

еще в логе где он отправляет команды, команда состоящая из одной строки, отправляется частями, это норм? или он отправляет её несколько раз.

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

Код:
Информация о версии:

  Клиент: вер. 6.1.764 / 06.08.2014 16:21:35
    os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.7.0_45
  Сервер: вер. 6.1.957 / 03.09.2014 18:51:16
    os: Linux; java: Java HotSpot(TM) Client VM, v.1.7.0_65

  bill: вер. 6.1.249 / 19.08.2014 12:44:47
  card: вер. 6.1.199 / 22.08.2014 15:53:18
  inet: вер. 6.1.583 / 03.09.2014 20:13:45


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2014, 11:53 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cостояние сервиса какое на договоре ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2014, 11:56 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
для Mikrotik лучше использовать MikrotikServiceAcivator. Для telnet там нужно к логину добавлять "+ct" кажется, иначе стандартный механизм по telnet работает не корректно( там endSequence на самом деле приходит 2 раза после приветствия ).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2014, 18:55 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
stark писал(а):
для Mikrotik лучше использовать MikrotikServiceAcivator. Для telnet там нужно к логину добавлять "+ct" кажется, иначе стандартный механизм по telnet работает не корректно( там endSequence на самом деле приходит 2 раза после приветствия ).

спасибо, добавление "+ct" к логину, решило одну проблему - логинится и добавляет мгновенно, но вот выход тока через 5 сек.

и непонятные входы от биллинга остались.

скрин окна договора test приложил.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2014, 18:59 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выход через 5 сек - потому что ждет, вдруг еще задание будет, чтобы каждый раз не подключаться/отключаться.
Некоторые подключения когда ничего не делается возможны, зависят от схемы, обычно не проблема, т.к. не часты.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2014, 19:44 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
в нашем текущем билинге сейчас сделано так:
Код:
/usr/local/bin/expect /var/lib/event/event1.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity

 #!/usr/local/bin/expect
 set nas_ip [lrange $argv 0 0]
 set ip [lrange $argv 1 1]
 set telnet_user [lrange $argv 2 2]
 set telnet_password [lrange $argv 3 3]
 set nas_identity [lrange $argv 4 4]
 spawn telnet $nas_ip
 expect "Login:"
 send "$telnet_user+ct\r"
 expect "Password:"
 send "$telnet_password\r"
 expect "$telnet_user@$nas_identity"
 send "/ip firewall address-list remove \[/ip firewall address-list find comment=$ip\] \r"
 expect "$telnet_user@$nas_identity"
 send "/ip firewall address-list add address=$ip list=list_NOMONEY comment=$ip \r"
 expect "$telnet_user@$nas_identity"
 send "quit\r"
 expect eof

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

можно ли как то сделать, что бы исключить эти ненужные входы по телнет? сейчас когда микрорайон включается после отключения электроэнергии, в один миг будет куча авторизаций, и к каждой авторизации 5 сек задержка выхода, и + еще по 5 дополнительных входов/выходов...

например, сейчас у нас 500 авторизаций юзеров = 500 входов по телнет от биллинга - работает исключительно хорошо.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2014, 19:51 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
и еще ткоа что заметил как невероятно глупо рабоатет алгоритм активатора, например: один и тот же юзер вошел два раза подряд(вошел, затем сразу вышел, затем через секунду еще раз вошел).

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

и получается что целую минуту юзер сидит без инета.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2014, 20:28 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
можно ли как то сделать, что бы исключить эти ненужные входы по телнет? сейчас когда микрорайон включается после отключения электроэнергии, в один миг будет куча авторизаций, и к каждой авторизации 5 сек задержка выхода, и + еще по 5 дополнительных входов/выходов...
Попробуйте указать в конфиге sa.lazyConnect=1.

Цитата:
и еще ткоа что заметил как очень странно рабоатет алгоритм активатора
60 секунд ждет по умолчанию, если при синхронизации произошла какая-то ошибка. Посмотрите логи InetAccess на предмет таких ошибок, вполне возможно, что дело в этом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 сен 2014, 23:35 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
поставил sa.lazyConnect=1, нажал перечитать конфиг. на всякий случай перезапустил bginet_access

логи в аттачах.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 00:58 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Попробуйте так:
Код:
sa.command.exit=quit
sa.command.disconnect=exit
или так:
Код:
sa.command.exit=quit
sa.command.disconnect=


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 01:13 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
Amir писал(а):
Попробуйте так:
Код:
sa.command.exit=quit
sa.command.disconnect=exit
или так:
Код:
sa.command.exit=quit
sa.command.disconnect=

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

в логах
Код:
09-22/23:11:45  INFO [sa-p-13-t-1] TelnetServiceActivator - Password entered
09-22/23:11:45  INFO [sa-p-13-t-1] TelnetServiceActivator - execute: /ip firewall address-list remove [/ip firewall address-list find comment=100.64.33.87]
09-22/23:11:45  INFO [sa-p-13-t-1] TelnetServiceActivator -
[bill@HOME31-GW] > /ip firewall address-list remove [/ip firewall address-list f
ind comment=100.64.33.87]




[bill@HOME31-GW] >
09-22/23:11:45  INFO [sa-p-13-t-1] ServiceActivatorDeviceWorker - Process event type[5] result=true
09-22/23:11:50  INFO [sa-p-13-t-1] ServiceActivatorSet - Disconnecting from device


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 01:30 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Проблемы в выходе после 5 секунд нет (он выполняет сразу несколько действий за одно подключение, поэтому ждет 5 секунд, не придет ли новое задание).
Нужно чтобы в логах при выполнении команд не было java.util.concurrent.TimeoutException или других исключений. Тогда все быстро будет выполняться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 01:34 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
я пару раз замечал TimeoutException, но объяснения для неё не нашел. оба устройства находятся рядом, я зашел на обои. Они друг друга видят, но при этом иногда проскакивает такая ошибка в логах.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 01:40 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Если судить по connection.log - то там причина в том что команда quit была прописана не в sa.command.exit=
При отключении сначала вызывается sa.command.disconnect, затем sa.command.exit.

Во всех остальных параметрах (кроме sa.command.exit) после выполнения команды идет ожидание приглашения. Т.е. после выполнения команд из sa.command.disconnect= тоже идет ожидание приглашения. Поэтому происходило выполнение quit, далее ожидание приглашения, которое никогда уже не появится и через минуту отваливалось по таймауту.
А для команды sa.command.exit= не происходит ожидание приглашения, поэтому самая последняя команда, приводящая к закрытию соединения с другой стороны должна быть в этом параметре.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 01:42 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Еще TimeoutException может быть при выполнении команд, когда в консоли меняется приглашение, а в командах при этом не вызывается макрос, меняющий ожидание приглашения на новый символ/строку.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 01:47 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
ну вроде приглашение ">" в микротик всегда одинаково.

т.е. получается что так правильно:
Код:
sa.command.exit=quit
sa.command.disconnect=
т.к. я пробовал через консоль, после quit принудительно разрывается соединение.

вот как то выглядит в терминале:
Код:
[root@billing ~]# telnet 10.0.0.1
   ing 10.0.0.1...                                                                                                                                                                                    onnected to 10.0.0.1.

Login: bill
Password:

  MMM      MMM       KKK                          TTTTTTTTTTT      KKK
  MMMM    MMMM       KKK                          TTTTTTTTTTT      KKK
  MMM MMMM MMM  III  KKK  KKK  RRRRRR     OOOOOO      TTT     III  KKK  KKK
  MMM  MM  MMM  III  KKKKK     RRR  RRR  OOO  OOO     TTT     III  KKKKK
  MMM      MMM  III  KKK KKK   RRRRRR    OOO  OOO     TTT     III  KKK KKK
  MMM      MMM  III  KKK  KKK  RRR  RRR   OOOOOO      TTT     III  KKK  KKK

  MikroTik RouterOS 6.13 (c) 1999-2014       http://www.mikrotik.com/

[?]             Gives the list of available commands
command [?]     Gives help on the command and list of arguments

[Tab]           Completes the command/word. If the input is ambiguous,
                a second [Tab] gives possible options

/               Move up to base level
..              Move up one level
/command        Use command at the base level

[bill@HOME31-GW] > quit
interrupted
           Connection closed by foreign host.
[root@billing ~]#


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 02:05 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Да, должно быть правильно. И должно быстро реагировать теперь, без минутных пауз, если других ошибок в логах не возникает при выполнении команд.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 02:17 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
а с нелепыми заходами и выходами без выполнения чего либо можно что то сделать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 02:25 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Тоже лог нужен, когда это происходит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 19:23 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
лог в аттаче


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 19:29 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
По логу как-будто sa.lazyConnect=1 не применился. Параметр правильно прописан в конфиге устройства или типа устройства?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 22:41 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
Amir писал(а):
По логу как-будто sa.lazyConnect=1 не применился. Параметр правильно прописан в конфиге устройства или типа устройства?

да, убирал этот параметр для тестов.
сейчас вернул - и доп входы перестали появляться.

Но появилась другая проблемма:
при sa.lazyConnect=1 заход и добавление правила происходит через некоторое время(оно всегда разное, 20-60сек) с момента авторизации. в логах есть TimeoutException
при sa.lazyConnect=0 заход идёт сразу, но при этом имеется доп сессии входа, TimeoutException в логах не появляется


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2014, 22:45 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
TimeoutException идёт в таком контексте:
Код:
09-23/20:42:25  INFO [main] DefaultServerSetup - Binding javax.jms.ConnectionFactory[org.apache.activemq.ActiveMQConnectionFactory@1293709] to java:comp/env/mq/connectionFactory
09-23/20:42:25  INFO [main] DefaultServerSetup - Init DB connection pools
09-23/20:42:25  INFO [main] DefaultServerSetup - Binding JDBC pool "master" to java:comp/env/jdbc/master
09-23/20:42:25  INFO [main] AnnotatedMBean - Register MBean ru.bitel.bgbilling.server.util:type=DatabaseConnectionPool,name=master
09-23/20:42:25  INFO [main] DefaultServerSetup - Init trash pools..
09-23/20:42:37  INFO [sa-p-13-t-26] ServiceActivatorSet - Connecting to device
09-23/20:42:37  INFO [sa-p-13-t-26] ServiceActivatorDeviceWorker - Do task deviceId: 2; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaAccountingEvent] moduleId: 1; pluginId: no; cid: 3; scid: -1; userId: 0; type: 1; deviceId: 2; connectionId: 80; timestamp: 1411490557222
09-23/20:42:37  INFO [sa-p-13-t-26] InetApplication - TariffOptionMap: {}
09-23/20:42:37  INFO [sa-p-13-t-26] InetApplication - OptionSet: []
09-23/20:42:37  INFO [sa-p-13-t-26] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=4; inetServId: 1; call: true; oldState: 1; newState: 1; oldOptionSet: ; newOptionSet:
09-23/20:42:37  INFO [sa-p-13-t-26] ServiceActivatorDeviceWorker - Processing deviceId:2; command ServiceActivatorEvent type=4; inetServId: 1; call: true; oldState: 1; newState: 1; oldOptionSet: ; newOptionSet:
09-23/20:42:37  INFO [sa-p-13-t-26] ServiceActivatorSet - Invoking onAccountingStart
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator - Connecting 10.0.0.1:23, timeout: 60000
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator - Connected
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator - Password:
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator - Login entered
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator -
















  MMM      MMM       KKK                          TTTTTTTTTTT      KKK

  MMMM    MMMM       KKK                          TTTTTTTTTTT      KKK

  MMM MMMM MMM  III  KKK  KKK  RRRRRR     OOOOOO      TTT     III  KKK  KKK

  MMM  MM  MMM  III  KKKKK     RRR  RRR  OOO  OOO     TTT     III  KKKKK

  MMM      MMM  III  KKK KKK   RRRRRR    OOO  OOO     TTT     III  KKK KKK

  MMM      MMM  III  KKK  KKK  RRR  RRR   OOOOOO      TTT     III  KKK  KKK



  MikroTik RouterOS 6.13 (c) 1999-2014       http://www.mikrotik.com/


[?]             Gives the list of available commands

command [?]     Gives help on the command and list of arguments



[Tab]           Completes the command/word. If the input is ambiguous,

                a second [Tab] gives possible options



/               Move up to base level

..              Move up one level

/command        Use command at the base level





[bill@HOME31-GW] >
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator - Password entered
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator - execute: /ip firewall address-list remove [/ip firewall address-list find comment=100.64.33.87]
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator -
[bill@HOME31-GW] > /ip firewall address-list remove [/ip firewall address-list f
ind comment=100.64.33.87]




[bill@HOME31-GW] >
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator - execute: /ip firewall address-list add address=100.64.33.87 list=list_NOMONEY comment=100.64.33.87
09-23/20:42:37  INFO [sa-p-13-t-26] TelnetServiceActivator - /ip firewall address-list add address=100.64.33.87 list=list_
NOMONEY comment=100.64.33.87




[bill@HOME31-GW] >
09-23/20:42:37  INFO [sa-p-13-t-26] ServiceActivatorDeviceWorker - Process event type[4] result=true
09-23/20:42:42  INFO [sa-p-13-t-26] ServiceActivatorSet - Disconnecting from device
09-23/20:42:42  INFO [sa-p-13-t-26] TelnetServiceActivator - execute: quit
09-23/20:43:42 ERROR [sa-p-13-t-26] ServiceActivatorSet - Device:2 - null
java.util.concurrent.TimeoutException
   at bitel.billing.server.util.terminal.TerminalManager.readFromInput(TerminalManager.java:74)
   at bitel.billing.server.util.terminal.TerminalManager.doCommand(TerminalManager.java:39)
   at bitel.billing.server.util.terminal.AbstractTerminalSession.doCommand(AbstractTerminalSession.java:107)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TelnetServiceActivator.executeCommand(TelnetServiceActivator.java:148)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.AbstractTerminalServiceActivator.executeCommands(AbstractTerminalServiceActivator.java:704)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.AbstractTerminalServiceActivator.disconnect(AbstractTerminalServiceActivator.java:726)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TelnetServiceActivator.disconnect(TelnetServiceActivator.java:124)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorSet.disconnect(ServiceActivatorSet.java:226)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:252)
   at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:139)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:145)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
   at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
   at java.lang.Thread.run(Thread.java:745)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)
09-23/20:43:43  INFO [sa-p-13-t-46] ServiceActivatorSet - Connecting to device
09-23/20:43:43  INFO [sa-p-13-t-46] ServiceActivatorDeviceWorker - Do task deviceId: 2; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 1; pluginId: no; cid: 3; scid: -1; userId: 0; deviceId: 2; inetServId: 1; connectionId: 80; state: 0; accessCode: 63; timestamp: 1411490621462
09-23/20:43:43  INFO [sa-p-13-t-46] InetApplication - TariffOptionMap: {}
09-23/20:43:43  INFO [sa-p-13-t-46] InetApplication - OptionSet: []
09-23/20:43:43  INFO [sa-p-13-t-46] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=2; inetServId: 1; call: true; oldState: 1; newState: 0; oldOptionSet: ; newOptionSet:
09-23/20:43:43  INFO [sa-p-13-t-46] ServiceActivatorDeviceWorker - Processing deviceId:2; command ServiceActivatorEvent type=2; inetServId: 1; call: true; oldState: 1; newState: 0; oldOptionSet: ; newOptionSet:
09-23/20:43:43  INFO [sa-p-13-t-46] ServiceActivatorSet - Invoking connectionModify
09-23/20:43:43  INFO [sa-p-13-t-46] ServiceActivatorDeviceWorker - Process event type[2] result=true
09-23/20:43:48  INFO [sa-p-13-t-46] ServiceActivatorSet - Disconnecting from device


я так понимаю это из-за того что микротик принудительно разрывает соединение после quit?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 сен 2014, 15:36 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
jone31 писал(а):
TimeoutException идёт в таком контексте:


Какие команды сейчас ? скорее всего у вас стоит
Код:
sa.command.disconnect=quit

А должно быть
Код:
sa.command.exit=quit


Так скорее всего . Потому что у вас пишет

Цитата:
execute: quit


sa.command.exit до недавнего времени вообще не выводилась в лог, ее вывод добавили(по просьбам пользователей форума), но там другой вывод. А вот sa.command.disconnect выводится в лог именно так и там ожидают ответа от этой команды(а его нет). Вам уже выше писали тоже самое, видимо вы так и не сделали правильно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 сен 2014, 15:53 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
да - команды стояли неверно, что странно, т.к. я в тот пост копировал данные прямо из конфига.

поставил как написали выше - вроде сейчас работает корректно.

сейчас в логах проскакивают такие ошибки
Код:
09-25/13:44:13 ERROR [sa-p-13-t-94] InetSaStateModifyEvent - Connection not found with id=83


прикладываю лог


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 сен 2014, 16:14 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
а можно ли как то передать команду описывающую скорость юзера? или тариф?
т.е. нужно в разные листы их засовывать, в зависимости от их тарифа.

сейчас у нас все листы на маршрутизаторе заданы как list_{скорость}, т.е. например list_30, list_50, list_75...
так же есть спец. листы:
list_NOMONEY - если у юзера нет денег(работает ограниченный список сайтов)
list_DENY - подключился не с того маршрутизатора(когда физик подключается из сети где только юрики)
list_NOTAR - нет тарифа у юзера (первое подключение юзера, нет тарифа, ему нужно его выбрать в ЛК)

как можно это все обработать и послать соответствующие команды?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 сен 2014, 17:21 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
сейчас в логах проскакивают такие ошибки
Находит задание для сессии, которой уже нет. Возможно из-за предыдущей конфигурации считал что задание не выполнено, откладывал попробовать снова. По идее должно пройти.
Цитата:
а можно ли как то передать команду описывающую скорость юзера? или тариф?
Как должны выглядеть команды?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 сен 2014, 17:46 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
Цитата:
Как должны выглядеть команды?

все команды одинаковы, меняется только IP и название листа:
Код:
/ip firewall address-list add address=100.64.33.87 list=list_NOMONEY comment=100.64.33.87
/ip firewall address-list add address=100.64.33.87 list=list_30 comment=100.64.33.87
/ip firewall address-list add address=100.64.33.87 list=list_50 comment=100.64.33.87
отслеживание входов физика из мест для юрика сейчас идёт так:
физики сидят во 2 влане, юрики сидят в 3 влане, в каждом влане свой pppoe сервер. все заведены в билинге и авторизуются по радиусу. В билинге у юриков номера договоров из другого диапазона чем у физиков.
Сейчас команды на роутеры направляются из баш скрипта, который смотрит IP маршрутизатора, через который юзер авторизовался, и номер договора, если договор из диапазона для юриков и IP_роутера нет в списке разрешенных для юриков, то вместо занесения его в листы доступа в Инет, заносит его в лист list_DENY, в котором нет инета и показывается заглушка о том что так делать нельзя.
Текущий билинг не разделяет юзеров на физики и юрики, поэтому делали такие костыли.
У вас я там видел в менеджере есть разделение на физики и юрики, возможно можно организовать более простой способ этого.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 сен 2014, 20:13 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Т.е. если нужно переключить скорость на 30 просто выполняем
/ip firewall address-list add address=100.64.33.87 list=list_30 comment=100.64.33.87
А затем скорость по тарифу меняется - просто на 50
/ip firewall address-list add address=100.64.33.87 list=list_50 comment=100.64.33.87
Т.е. старый list удалять не нужно?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 сен 2014, 04:00 
Не в сети

Зарегистрирован: 03 фев 2014, 23:32
Сообщения: 27
Карма: 0
Amir писал(а):
Т.е. если нужно переключить скорость на 30 просто выполняем
/ip firewall address-list add address=100.64.33.87 list=list_30 comment=100.64.33.87
А затем скорость по тарифу меняется - просто на 50
/ip firewall address-list add address=100.64.33.87 list=list_50 comment=100.64.33.87
Т.е. старый list удалять не нужно?
перед изменением ACL старую запись нужно удалить.
команда
Код:
/ip firewall address-list remove [/ip firewall address-list find comment=100.64.33.87]
не акцентировал на этом внимание, т.к. для удаления ACL нужен только IP, который есть в TelnetServiceActivator

при смене ACL - скорость меняется на лету, пере подключать соединение не требуется.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.081s | 78 Queries | GZIP : On ]