forum.bitel.ru
http://forum.bitel.ru/

непонятное поведение TelnetServiceActivator
http://forum.bitel.ru/viewtopic.php?f=44&t=9738
Страница 1 из 2

Автор:  jone31 [ 21 сен 2014, 18:56 ]
Заголовок сообщения:  непонятное поведение TelnetServiceActivator

хочу использовать этот активатор для добавления 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

Автор:  stark [ 22 сен 2014, 11:53 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

Cостояние сервиса какое на договоре ?

Автор:  stark [ 22 сен 2014, 11:56 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

для Mikrotik лучше использовать MikrotikServiceAcivator. Для telnet там нужно к логину добавлять "+ct" кажется, иначе стандартный механизм по telnet работает не корректно( там endSequence на самом деле приходит 2 раза после приветствия ).

Автор:  jone31 [ 22 сен 2014, 18:55 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

stark писал(а):
для Mikrotik лучше использовать MikrotikServiceAcivator. Для telnet там нужно к логину добавлять "+ct" кажется, иначе стандартный механизм по telnet работает не корректно( там endSequence на самом деле приходит 2 раза после приветствия ).

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

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

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

Автор:  Amir [ 22 сен 2014, 18:59 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

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

Автор:  jone31 [ 22 сен 2014, 19:44 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

в нашем текущем билинге сейчас сделано так:
Код:
/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 сек ничего не делая. это просто невероятный расход ресурсов будет

Автор:  jone31 [ 22 сен 2014, 19:51 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

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

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

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

Автор:  Amir [ 22 сен 2014, 20:28 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

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

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

Автор:  jone31 [ 22 сен 2014, 23:35 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

поставил sa.lazyConnect=1, нажал перечитать конфиг. на всякий случай перезапустил bginet_access

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

Автор:  Amir [ 23 сен 2014, 00:58 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

Попробуйте так:
Код:
sa.command.exit=quit
sa.command.disconnect=exit
или так:
Код:
sa.command.exit=quit
sa.command.disconnect=

Автор:  jone31 [ 23 сен 2014, 01:13 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

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

Автор:  Amir [ 23 сен 2014, 01:30 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

Проблемы в выходе после 5 секунд нет (он выполняет сразу несколько действий за одно подключение, поэтому ждет 5 секунд, не придет ли новое задание).
Нужно чтобы в логах при выполнении команд не было java.util.concurrent.TimeoutException или других исключений. Тогда все быстро будет выполняться.

Автор:  jone31 [ 23 сен 2014, 01:34 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

я пару раз замечал TimeoutException, но объяснения для неё не нашел. оба устройства находятся рядом, я зашел на обои. Они друг друга видят, но при этом иногда проскакивает такая ошибка в логах.

Автор:  Amir [ 23 сен 2014, 01:40 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

Если судить по connection.log - то там причина в том что команда quit была прописана не в sa.command.exit=
При отключении сначала вызывается sa.command.disconnect, затем sa.command.exit.

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

Автор:  Amir [ 23 сен 2014, 01:42 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

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

Автор:  jone31 [ 23 сен 2014, 01:47 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

ну вроде приглашение ">" в микротик всегда одинаково.

т.е. получается что так правильно:
Код:
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 ~]#

Автор:  Amir [ 23 сен 2014, 02:05 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

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

Автор:  jone31 [ 23 сен 2014, 02:17 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

а с нелепыми заходами и выходами без выполнения чего либо можно что то сделать?

Автор:  Amir [ 23 сен 2014, 02:25 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

Тоже лог нужен, когда это происходит.

Автор:  jone31 [ 23 сен 2014, 19:23 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

лог в аттаче

Автор:  Amir [ 23 сен 2014, 19:29 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

По логу как-будто sa.lazyConnect=1 не применился. Параметр правильно прописан в конфиге устройства или типа устройства?

Автор:  jone31 [ 23 сен 2014, 22:41 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

Amir писал(а):
По логу как-будто sa.lazyConnect=1 не применился. Параметр правильно прописан в конфиге устройства или типа устройства?

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

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

Автор:  jone31 [ 23 сен 2014, 22:45 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

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?

Автор:  stark [ 24 сен 2014, 15:36 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

jone31 писал(а):
TimeoutException идёт в таком контексте:


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

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


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

Цитата:
execute: quit


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

Автор:  jone31 [ 25 сен 2014, 15:53 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

да - команды стояли неверно, что странно, т.к. я в тот пост копировал данные прямо из конфига.

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

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


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

Автор:  jone31 [ 25 сен 2014, 16:14 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

а можно ли как то передать команду описывающую скорость юзера? или тариф?
т.е. нужно в разные листы их засовывать, в зависимости от их тарифа.

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

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

Автор:  Amir [ 25 сен 2014, 17:21 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

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

Автор:  jone31 [ 25 сен 2014, 17:46 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

Цитата:
Как должны выглядеть команды?

все команды одинаковы, меняется только 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, в котором нет инета и показывается заглушка о том что так делать нельзя.
Текущий билинг не разделяет юзеров на физики и юрики, поэтому делали такие костыли.
У вас я там видел в менеджере есть разделение на физики и юрики, возможно можно организовать более простой способ этого.

Автор:  Amir [ 25 сен 2014, 20:13 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

Т.е. если нужно переключить скорость на 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 удалять не нужно?

Автор:  jone31 [ 26 сен 2014, 04:00 ]
Заголовок сообщения:  Re: непонятное поведение TelnetServiceActivator

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 - скорость меняется на лету, пере подключать соединение не требуется.

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/