타 지역 Controller 연결 관련 문의

Posted by hjyooooo on
URL: http://ngrinder.373.s1.nabble.com/Controller-tp1080.html

안녕하세요 오랜만에 문의 드리네요^

저는 아마존 클라우드 환경에서 nGrinder 테스트를 하고 있습니다.

기존에는 Controller와 Agent가 같은 지역안에서 테스트를 했습니다. 그런데 Agent가 더 필요하여

다른 지역에 생성하고 Controller는 기존 지역의 것을 사용하려고 연결 했는데 잘 안되서 문의
 
드립니다. 지역간 연결은 사설IP로는 연결이 안되고 공인IP로 연결이 가능합니다.

서버 정보(IP는 보안상 임의 숫자)
- A지역 Agent 공인IP : 11.111.11.11
- B지역 Controller 사설IP : 22.222.22.22
                        공인IP : 33.333.33.33


1. Agent(A지역) -> Controller(B지역) 공인 IP로 방화벽 해제
   16001, 12000~12100

2. Agent.conf 설정
   agent.console.ip=33.333.33.33(Controller 공인 IP)

3. Controller와 agent 연결 확인
  Agent실행후 정상연결확인, Controller 화면의 agent관리에서 해당 agent 보임

4. 테스트 수행
 - Agent 에러 발생.
 - 아래와 같이 Controller의 공인IP가 아닌 사설IP(22.222.22.22)로 접속 시도하여 에러

2013-11-19 06:10:21,691 INFO  agent controller: agent start message is revcieved from console net.grinder.messages.agent.StartGrinderMessage@11bed71
2013-11-19 06:10:21,691 INFO  agent controller: starting agent... for test_4
2013-11-19 06:10:21,694 INFO  net.grinder.AgentDaemon: Agent Daemon Agent conntected to port : 12000 is started.
2013-11-19 06:10:21,696 INFO  agent controller: agent is started. waiting for agent controller signal
2013-11-19 06:10:21,705 INFO  net.grinder.AgentDaemon: The Grinder 3.9.1
2013-11-19 06:11:24,875 ERROR net.grinder.AgentDaemon: Failed to connect to '/22.222.22.22:12000'
2013-11-19 06:11:24,877 INFO  net.grinder.AgentDaemon: finished
2013-11-19 06:11:24,877 INFO  agent controller: send log for test_4

   
5. 게시판의 비슷한 문의 내용 참고 하여 Controller의 system.conf 공인 IP로 수정
게시판  : http://ngrinder.642.n7.nabble.com/agent-td838.html

Controller system.conf 아래와 같이 수정
# select the ip for controller to use.
ngrinder.controller.ipaddress=33.333.33.33

위와 같이 수정후 다시 연결 => agent와 controller에서 에러 발생

- agent log(공인IP로 연결시도)

2013-11-19 06:16:12,859 INFO  org.ngrinder.NGrinderStarter:  Start nGrinder Agent ...
2013-11-19 06:16:12,861 ERROR org.ngrinder.NGrinderStarter: Hey!! JAVA_HOME env var was not provided. Please provide JAVA_HOME env var before running agent.Otherwise you can not execute the agent in the security mode.
2013-11-19 06:16:12,862 INFO  org.ngrinder.NGrinderStarter: with console: 33.333.33.33:16001
2013-11-19 06:16:12,862 INFO  org.ngrinder.NGrinderStarter: JVM server mode is disabled. If you turn on ngrinder.servermode in agent.conf. It will provide the better agent performance.
2013-11-19 06:16:12,884 INFO  agent controller daemon: The agent controller daemon is started.
2013-11-19 06:16:12,986 ERROR agent controller: Error while connecting to controller /33.333.33.33:16001
2013-11-19 06:16:15,068 ERROR agent controller: Error while connecting to controller /33.333.33.33:16001
2013-11-19 06:16:17,148 ERROR agent controller: Error while connecting to controller /33.333.33.33:16001


- controller log

2013-11-19 06:31:20,231 INFO  Config.java:394 :  System configuration(system.conf) is changed.
2013-11-19 06:31:20,247 INFO  Config.java:403 :  New system configuration is applied.
2013-11-19 06:32:17,974 ERROR ErrorHandlerImplementation.java:67 :  Failed to bind to console address, check options.
net.grinder.console.common.DisplayMessageConsoleException: Failed to bind to console address, check options.
        at net.grinder.console.communication.ConsoleCommunicationImplementationEx.reset(ConsoleCommunicationImplementationEx.java:167) [ngrinder-core-3.2.3.jar:na]
        at net.grinder.console.communication.ConsoleCommunicationImplementationEx.<init>(ConsoleCommunicationImplementationEx.java:126) [ngrinder-core-3.2.3.jar:na]
        at net.grinder.console.communication.ConsoleCommunicationImplementationEx.<init>(ConsoleCommunicationImplementationEx.java:81) [ngrinder-core-3.2.3.jar:na]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.6.0_43]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [na:1.6.0_43]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [na:1.6.0_43]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [na:1.6.0_43]
        at org.picocontainer.injectors.AbstractInjector.newInstance(AbstractInjector.java:147) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:332) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:272) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:354) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:692) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:105) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:76) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:299) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:325) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:272) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:354) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:692) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646) [picocontainer-2.13.6.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:671) [picocontainer-2.13.6.jar:na]
        at net.grinder.AgentControllerServer.run(AgentControllerServer.java:87) [ngrinder-core-3.2.3.jar:na]
        at net.grinder.AgentControllerServerDaemon.startSync(AgentControllerServerDaemon.java:137) [ngrinder-core-3.2.3.jar:na]
        at net.grinder.AgentControllerServerDaemon$1.run(AgentControllerServerDaemon.java:122) [ngrinder-core-3.2.3.jar:na]
        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_43]
Caused by: net.grinder.communication.CommunicationException: Could not bind to address '33.333.33.33:16001'
        at net.grinder.communication.Acceptor.<init>(Acceptor.java:98) ~[grinder-core-3.9.1.jar:na]
        at net.grinder.console.communication.ConsoleCommunicationImplementationEx.reset(ConsoleCommunicationImplementationEx.java:165) [ngrinder-core-3.2.3.jar:na]
        ... 33 common frames omitted
Caused by: java.net.BindException: Cannot assign requested address
        at java.net.PlainSocketImpl.socketBind(Native Method) ~[na:1.6.0_43]
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383) ~[na:1.6.0_43]
        at java.net.ServerSocket.bind(ServerSocket.java:328) ~[na:1.6.0_43]
        at java.net.ServerSocket.<init>(ServerSocket.java:194) ~[na:1.6.0_43]
        at net.grinder.communication.Acceptor.<init>(Acceptor.java:93) ~[grinder-core-3.9.1.jar:na]
        ... 34 common frames omitted
2013-11-19 06:32:19,069 INFO  DynamicCacheConfig.java:77 :  In no cluster mode.
2013-11-19 06:32:21,009 WARN  Cglib2AopProxy.java:255 :  Unable to proxy method [public final boolean org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider.supports(java.lang.Class)] because it is final: All calls t
o this method via a proxy will be routed directly to the proxy.
2013-11-19 06:32:21,107 WARN  Cglib2AopProxy.java:255 :  Unable to proxy method [public final void org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.afterPropertiesSet() throws java.lang.Exception] because it is fina
l: All calls to this method via a proxy will be routed directly to the proxy.
2013-11-19 06:32:21,218 INFO  PluginManager.java:113 :  Initializing Plugin System
2013-11-19 06:32:21,387 INFO  PluginManager.java:220 :  plugin descriptor org.ngrinder.infra.plugin.OnServletFilterModuleDescriptor with on-servletfilter is initiated.
2013-11-19 06:32:21,388 INFO  PluginManager.java:220 :  plugin descriptor org.ngrinder.infra.plugin.OnTestSamplingModuleDescriptor with on-test-sampling is initiated.
2013-11-19 06:32:21,388 INFO  PluginManager.java:220 :  plugin descriptor org.ngrinder.infra.plugin.OnPeridocWorkingAgentCheckRunnableDescriptor with on-working-agent-check is initiated.
2013-11-19 06:32:21,388 INFO  PluginManager.java:220 :  plugin descriptor org.ngrinder.infra.plugin.OnPreAuthServletFilterModuleDescriptor with on-preauth-servletfilter is initiated.
2013-11-19 06:32:21,391 INFO  PluginManager.java:220 :  plugin descriptor org.ngrinder.infra.plugin.OnControllerLifeCycleModuleDescriptor with on-start is initiated.
2013-11-19 06:32:21,391 INFO  PluginManager.java:220 :  plugin descriptor org.ngrinder.infra.plugin.OnLoginModuleDescriptor with on-login is initiated.
2013-11-19 06:32:21,391 INFO  PluginManager.java:220 :  plugin descriptor org.ngrinder.infra.plugin.OnTestLifeCycleModuleDescriptor with on-test-start is initiated.
2013-11-19 06:32:24,220 INFO  PluginManager.java:155 :  Plugin System is started.




- 문의 요약 -
1.타지역에 있는 Controller연결을 위해 agent에 Controller의 EIP로 설정하고 실행하면 연결(16001)은 되나 테스트 수행시 Agent의 Controller 사설IP:12000로 연결 시도하면서 에러 발생
2. Controller의 system.conf에 공인IP설정시 agent에서 controller로 16001연결 자체가 안됨.
Controller에서 "Could not bind to address" 에러 발생, 자신의 공인IP로 bind가 안되는것 같음.

도움 부탁드립니다.