안녕하세요 오랜만에 문의 드리네요^
저는 아마존 클라우드 환경에서 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가 안되는것 같음. 도움 부탁드립니다. |
Administrator
|
현재 사용 버전이 어떻게 되시는지요?
-----Original Message----- If you reply to this email, your message will be added to the discussion below:
http://ngrinder.642.n7.nabble.com/Controller-tp1080.html
To start a new topic under ngrinder-user-kr, email [hidden email]
To unsubscribe from ngrinder-user-kr, click here. NAML |
Controller , Agent 둘다 3.2.3 버전입니다
|
Administrator
|
system.conf 에 controller ip를 지정해 주신후, 아무래도 controller 리부팅을 않하신것 같습니다.
확인 부탁드립니다. |
말씀하신 리부팅이 tomcat 리스타트를 말씀하시는건가요?^^
그렇다면 system.conf수정후 리스타트는 수행을 했습니다. 혹시나 해서 좀전에 톰캣 stop / start를 수행했는데 동일한 에러가 발생합니다. |
Administrator
|
그렇군요. 혹시 해당 공인 IP의 경우 바인딩(리스닝) 포트 제한이 있는 것인지 확인 부탁드립니다.
특정 포트 영역만 열수 있는 것 같기도 합니다. |
해결했습니다.
바인딩.. 문제일수도 있다고 해서...이와 관련해서 여기저기 알아보았는데.. amazon의 public ip는 binding문제가 있을수 있다고 해서. E(Elastic)IP할당 받고 system.conf에 EIP를 넣어서 테스트를 했는데 동일한 binding에러가 발생했구요.. Public DNS를 넣으니깐 binding도 되고 테스트도 정상수행되었습니다. 아마존의 private IP, public IP, public DNS, EIP가 있는데... 검색해서 아래와 같은 정보를 찾았습니다 . "private ip, private dns, public dns는 binding이 되지만, public ip(elastic ip)는 binding이 안 된다. (아마 ec2의 특성인 듯?) public dns의 경우, 외부에서 조회를 하면, public ip가 뜨지만, 내부에서 조회를 하면, private ip가 뜨기 때문에 binding이 되는 것 같다. " 감사합니다^^ |
Free forum by Nabble | Edit this page |