2017-09-14 3 views
1

도커 컨테이너에서 실행중인 Java 응용 프로그램이 있습니다. 이 컨테이너를 ECS 클러스터에 배포했습니다. 해당 컴퓨터에 설치된 CollectD 에이전트를 사용하여 JVM 통계를 수집 할 수 있도록 JMX 포트를 노출하고 싶습니다.도커에서 JMX 포트를 노출합니다. ECS 클러스터에서 실행중인 컨테이너

는 JVM PARAMS 내 자바 응용 프로그램에서 지정한 것을 내가 아닌 고정 표시기 환경에서이 응용 프로그램을 실행할 경우이 JMX 포트에 연결할 수 있어요

JAVA_OPTS="-Dspring.config.location=classpath:/base/ -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=10.0.7.118 

있습니다. 그러나 Docker에서도 동일한 작업을 수행 할 수 없습니다.

또한이 포트를 외부 세계에 노출시킬 수 있도록 내 작업 정의에 포트 매핑을 지정했습니다. 나도 알다시피, 만약 내가 도커 실행 명령을 사용하여이 docker를 실행한다면 포트 매핑을 위해 -p param을 지정할 수 있었지만이 이미지를 배포하는 ECS 클러스터에서이 응용 프로그램을 실행하면서 여기서는 동일한 작업을 수행 할 수 없습니다. 그래서 작업 정의에 의해 제공되는 포트 매핑에 의존해야합니다.

TaskDefnition

  "ContainerDefinitions": [ 
       { 
        "Name": "MyApplication", 
        "Cpu": "2048", 
        "Essential": "true", 
        "Image": "location of the image", 
        "Memory": "8192", 
        "MemoryReservation": "4096", 
        "Environment": [ 
         { 
          "Name": "Test", 
          "Value": { 
           "Fn::GetAtt": [ 
            "SomeAttrib", 
            "SomeAccessKey" 
           ] 
          } 
         } 
        ], 
        "PortMappings": [ 
         { 
          "HostPort": "8080", 
          "ContainerPort": "8080" 
         }, 
         { 
          "HostPort": "8008", 
          "ContainerPort": "8008" 
         } 
        ] 
       } 
+0

작업 정의 게시 –

+0

질문 업데이트 –

답변

0

는 다양한 링크를 통과 한 후 나는 내 문제에 대한 해결책을 발견했다. 마지막으로, -Dcom.sun.management.jmxremote.local.only = true를 추가이

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.rmi.port=8008 -Dcom.sun.management.jmxremote.local.only=true 

같은 JVM PARAMS보기는 나를 위해 트릭을했다. 요구 사항에 따라 true 또는 false로 설정할 수 있습니다.

관련 문제