BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Перестал работать шлюз микротика
СообщениеДобавлено: 23 май 2011, 16:16 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
Добрый день,

С сегодняшнего утра внезапно перестал работать шлюз МТ.
Пишет вот такую штуку:
Код:
05-23/13:45:27 ERROR [Thread-1363] MikrotikGateWorker - Gate unaccesible - 172.31.0.253
05-23/13:45:27 ERROR [Thread-1363] MikrotikGateWorker - -------------------------
05-23/13:45:27 ERROR [Thread-1363] MikrotikGateWorker - error: TargetError : at Line: 121 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.* . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused

java.lang.RuntimeException: TargetError : at Line: 121 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.* . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused

   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:282)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:139)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:101)
Caused by: TargetError : at Line: 121 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.* . . . '' : throw new RuntimeException ( e ) ;

Target exception: java.lang.RuntimeException: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused

   at bsh.BSHThrowStatement.eval(BSHThrowStatement.java:53)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHTryStatement.eval(BSHTryStatement.java:166)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:325)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:268)
   ... 2 more

причем из 4х микротиков проблема только с одним (RouterOS 5.1), с версиями 4.хх все нормально работает.
Код:
import java.util.*;
import java.util.regex.*;
import ru.bitel.bgbilling.common.*;
import bitel.billing.common.module.ipn.*;
import bitel.billing.server.ipn.bean.*;
import bitel.billing.server.ipn.*;
import bitel.billing.server.util.ssh.*;
import bitel.billing.server.util.*;
import bitel.billing.server.util.ssh.SSHSession;


protected void doSync()
{
   host = gate.getHost();
   port = gate.getPort();
   gateSetup = new DefaultServerSetup( gate.getConfig(), "\r\n" );
   login = gateSetup.getStringValue( "login", "root" );                               
   pswd = gate.getKeyword();

   if ( log.isDebugEnabled() )
   {
      log.debug( " gate: " + host + ":" + port + " login: " + login + " pswd: " + pswd );
   }
   session = null;
   try
   {
      session = new SSHSessionExec( host, port, login, pswd );
      address_list = session.command( "ip firewall address-list print without-paging" );
      new_address_list = null;
     //log.info("addres_list="+address_list);   
   
      for ( UserStatus status : statusList )
      {
         cid = status.contractId;
         ruleType = status.ruleType;
         rule_id = 0;
         if (ruleType != null)
         {
            rule_id = ruleType.getId();
         };
         rules = null;
         if (address_list.indexOf( "cid="+cid+";rule_id="+rule_id+";") != -1)
         {

            // правило для этого договора есть на шлюзе
            if ( status.status > 0 )
            {
         log.info("close");
         log.info("cid="+cid+";rule_id="+rule_id+";");
               if ( status.status == IPNContractStatus.STATUS_REMOVED )
               {
                  // удаляем
                  rules = getDeleteRules( status );
                  for ( String rule : rules )
              {
               p = Pattern.compile("rule_id");
                  m = p.matcher(rule);
               String r= m.replaceAll("rule_id="+rule_id);
               log.info(r);
                   session.command(r);
              }
               }
               else
               {
                  // закрываем
                  rules = getCloseRules( status );
                for ( String rule : rules )
                    {
                  p = Pattern.compile("rule_id");
                     m = p.matcher(rule);
                  String r= m.replaceAll("rule_id="+rule_id);
                  log.info(r);
                      session.command(r);
                       }
               };
            };
         }
         else if ( status.status == IPNContractStatus.STATUS_OPEN )
         {
         log.info("open");
         log.info("cid="+cid+";rule_id="+rule_id+";");
            //открываем
            rules = getOpenRules( status );
           for ( String rule : rules )
              {
               p = Pattern.compile("rule_id");
                  m = p.matcher(rule);
               String r= m.replaceAll("rule_id="+rule_id);
               log.info(r);
                   session.command(r);
              }
         };

  /*       if (rules != null){
            for ( String rule : rules )
            {
               p = Pattern.compile("rule_id");
               m = p.matcher(rule);
               if (new_address_list == null)
               {
                  new_address_list = "";
               };
               new_address_list = new_address_list + m.replaceAll("rule_id="+rule_id) + "\n";
            };
         };*/
      }
/*   if(new_address_list!=null)
   {
      log.info("new_address_list="+new_address_list.length());
   }
      if (new_address_list != null){
         print(address_list);
         print(new_address_list);
         result = session.command(new_address_list);
         print(result);
      };
*/
   }
   catch( Exception e )
   {
      throw new RuntimeException( e );
   }
   finally
   {
            if ( session != null )
            {
                session.disconnect();
            }
   }     
}


private getOpenRules( status )
{
   return getRules( status, "\\[OPEN\\](.*)\\[/OPEN\\]" );
}
private getCloseRules( status )
{
   return getRules( status, "\\[CLOSE\\](.*)\\[/CLOSE\\]" );
}
private getDeleteRules( status )
{
   return getRules( status, "\\[DELETE\\](.*)\\[/DELETE\\]" );
}   
private getRules( status, template )
{
   // пользовательское правило, без типа - то все оставляем как есть
   rule = status.rule.getRuleText();
   // типизированное правило
   if ( status.ruleType != null )
   {
      rule = generateRule( rule, status.gateType, status.ruleType, status.contractId );
   }
   pattern = Pattern.compile( template, Pattern.DOTALL );
   m = pattern.matcher( rule );
   if ( m.find() )
   {
      rule = m.group( 1 );
   }
   rule.replaceAll( "\r", "" );
   return rule.split( "\n" );
}
private   generateRule( addresses, gateType, ruleType, cid )
{
   String rule;
   replacements = new HashMap();     
   replacements.put( "\\{CID\\}", String.valueOf( cid ) );

   ruleText = ManadUtils.getRule( gateType, ruleType );
   rule = ManadUtils.generateRule( ruleText, addresses, replacements, ruleType );
   return rule;
}

с самого сервера биллинга адрес 172.31.0.253 доступен.
если включить снифер на МТ, то видно что биллинг что то присылает на 22 порт микротика и получает что то в ответ. в логе микротика ошибок авторизации нет.
обновлений за последнее время не делали.
на что ругается биллинг?


Вложения:
dump.cap.txt [184 байт]
Скачиваний: 740
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 май 2011, 16:19 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
уберите эти строки из кода :
Код:
catch( Exception e )
   {
      throw new RuntimeException( e );
   }


А то непонятно где ругается


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 май 2011, 16:54 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
Код:
05-23/14:51:14 ERROR [Thread-75] MikrotikGateWorker - Eval error2: Method Invocation session.command
Method Invocation session.command : at Line: 28 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.* . . . '' : session .command ( "ip firewall address-list print without-paging" )

Target exception: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused

   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:325)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:268)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:139)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:101)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream - java.lang.RuntimeException: Method Invocation session.command : at Line: 28 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.* . . . '' : session .command ( "ip firewall address-list print without-paging" )

Target exception: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused

05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:282)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:139)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:101)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream - Caused by: Method Invocation session.command : at Line: 28 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.* . . . '' : session .command ( "ip firewall address-list print without-paging" )

Target exception: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused

05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHAssignment.eval(BSHAssignment.java:77)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:47)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BSHBlock.eval(BSHBlock.java:81)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BshMethod.invokeImpl(BshMethod.java:362)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:258)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bsh.BshMethod.invoke(BshMethod.java:161)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:325)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:268)
05-23/14:51:14 ERROR [Thread-75] LoggingPrintStream -    ... 2 more
05-23/14:51:14 ERROR [Thread-75] MikrotikGateWorker - Gate unaccesible - 172.31.0.253
05-23/14:51:14 ERROR [Thread-75] MikrotikGateWorker - -------------------------
05-23/14:51:14 ERROR [Thread-75] MikrotikGateWorker - error: Method Invocation session.command : at Line: 28 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.* . . . '' : session .command ( "ip firewall address-list print without-paging" )

Target exception: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused

java.lang.RuntimeException: Method Invocation session.command : at Line: 28 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.* . . . '' : session .command ( "ip firewall address-list print without-paging" )

Target exception: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused

   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:282)
   at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:139)
   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:101)
Caused by: Method Invocation session.command : at Line: 28 : in file: inline evaluation of: ``import java.util.*; import java.util.regex.*; import ru.bitel.bgbilling.common.* . . . '' : session .command ( "ip firewall address-list print without-paging" )

Target exception: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection refused

   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:97)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHAssignment.eval(BSHAssignment.java:77)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:161)
   at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:325)
   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:268)
   ... 2 more


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 май 2011, 18:23 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
поставили рядом тестовый МТ с версией 5.1 - работает.
а у проблемного МТ даже попытки логина к нему не происходит от биллинга. вернее попытка есть, но сразу conection reset приходит.


Последний раз редактировалось Dog 23 май 2011, 19:01, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 май 2011, 18:56 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
решилось перезагрузкой МТ.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

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


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

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