forum.bitel.ru http://forum.bitel.ru/ |
|
Перестал работать шлюз микротика http://forum.bitel.ru/viewtopic.php?f=7&t=5507 |
Страница 1 из 1 |
Автор: | Dog [ 23 май 2011, 16:16 ] | ||
Заголовок сообщения: | Перестал работать шлюз микротика | ||
Добрый день, С сегодняшнего утра внезапно перестал работать шлюз МТ. Пишет вот такую штуку: Код: 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 порт микротика и получает что то в ответ. в логе микротика ошибок авторизации нет. обновлений за последнее время не делали. на что ругается биллинг?
|
Автор: | stark [ 23 май 2011, 16:19 ] |
Заголовок сообщения: | Re: Перестал работать шлюз микротика |
уберите эти строки из кода : Код: catch( Exception e ) { throw new RuntimeException( e ); } А то непонятно где ругается |
Автор: | Dog [ 23 май 2011, 16:54 ] |
Заголовок сообщения: | Re: Перестал работать шлюз микротика |
Код: 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 |
Автор: | Dog [ 23 май 2011, 18:23 ] |
Заголовок сообщения: | Re: Перестал работать шлюз микротика |
поставили рядом тестовый МТ с версией 5.1 - работает. а у проблемного МТ даже попытки логина к нему не происходит от биллинга. вернее попытка есть, но сразу conection reset приходит. |
Автор: | Dog [ 23 май 2011, 18:56 ] |
Заголовок сообщения: | Re: Перестал работать шлюз микротика |
решилось перезагрузкой МТ. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |