검색

6.2. Cryostat를 사용하여 AMQ Broker 관리

download PDF

JMX(Java Management Extensions)를 사용하여 브로커를 관리할 수 있습니다. 관리 API는 Cryostat 인터페이스를 사용하여 브로커에 의해 노출됩니다. 브로커는 도메인 org.apache.activemq 에 해당 리소스를 등록합니다.

예를 들어 exampleQueue 라는 큐를 관리하는 ObjectName 은 다음과 같습니다.

org.apache.activemq.artemis:broker="__BROKER_NAME__",component=addresses,address="exampleQueue",subcomponent=queues,routingtype="anycast",queue="exampleQueue"

Cryostat는 다음과 같습니다.

org.apache.activemq.artemis.api.management.QueueControl

Cryostat의 ObjectName 은 Helper 클래스 org.apache.activemq.artemis.api.core.management.ObjectNameBuilder 를 사용하여 빌드됩니다. jconsole을 사용하여 관리하려는 ObjectName 을 찾을 수도 있습니다.

Cryostat를 사용하여 브로커를 관리하는 것은 Cryostat를 사용하여 모든 Java 애플리케이션을 관리하는 것과 동일합니다. 이는 리플렉션 또는 proxy를 생성하여 수행할 수 있습니다.

6.2.1. Cryostat 관리 구성

브로커를 관리하기 위해 기본적으로 Cryostat가 활성화됩니다. broker.xml 구성 파일에서 jmx-management-enabled 속성을 설정하여 Cryostat 관리를 활성화하거나 비활성화할 수 있습니다.

프로세스

  1. &lt ;broker_instance_dir> /etc/broker.xml 구성 파일을 엽니다.
  2. &lt ;jmx-management-enabled>를 설정합니다.

    <jmx-management-enabled>true</jmx-management-enabled>

    Cryostat가 활성화된 경우 jconsole 을 사용하여 브로커를 로컬로 관리할 수 있습니다.

    참고

    보안상의 이유로 Cryostat에 대한 원격 연결은 기본적으로 활성화되어 있지 않습니다.

  3. 동일한 Cryostat Server 에서 여러 브로커를 관리하려면 각 브로커에 대해 Cryostat 도메인을 구성합니다.

    기본적으로 브로커는 Cryostat 도메인 org.apache.activemq.artemis 를 사용합니다.

    <jmx-domain>my.org.apache.activemq</jmx-domain>
    참고

    Windows 시스템에서 AMQ Broker를 사용하는 경우 시스템 속성을 Artemis 또는 artemis.cmd 로 설정해야 합니다. 쉘 스크립트는 < install_dir> /bin 아래에 있습니다.

추가 리소스

6.2.2. Cryostat 관리 액세스 구성

기본적으로 브로커에 대한 원격 Cryostat 액세스는 보안상의 이유로 비활성화되어 있습니다. 그러나 AMQ Broker에는 Cryostat에 대한 원격 액세스를 허용하는 Cryostat 에이전트가 있습니다. broker management.xml 구성 파일에서 커넥터 요소를 구성하여 Cryostat 액세스를 활성화합니다.

참고

'com.sun.management.jmxremote' JVM 시스템 속성을 사용하여 Cryostat 액세스를 활성화할 수도 있지만 해당 방법은 지원되지 않으며 안전하지 않습니다. JVM 시스템 속성이 브로커에서 RBAC를 바이패스할 수 있도록 수정 보안 위험을 최소화하려면 localhost에 대한 제한된 액세스를 고려하십시오.

중요

원격 관리를 위해 브로커의 Cryostat 에이전트를 노출하는 것은 보안에 영향을 미칩니다.

다음 절차에 설명된 대로 구성을 보호하려면 다음을 수행합니다.

  • 모든 연결에 SSL을 사용합니다.
  • 에이전트를 노출하는 호스트 및 포트인 커넥터 호스트를 명시적으로 정의합니다.
  • RMI(Remote Method Invocation) 레지스트리가 바인딩하는 포트를 명시적으로 정의합니다.

사전 요구 사항

  • 작업 브로커 인스턴스
  • Java jconsole 유틸리티

프로세스

  1. &lt ;broker-instance-dir&gt; /etc/management.xml 구성 파일을 엽니다.
  2. Cryostat 에이전트에 대한 커넥터를 정의합니다. connector-port 설정은 Cryostat 커넥터 서버의 jconsole 쿼리와 같은 클라이언트가 RMI 레지스트리를 설정합니다. 예를 들어 포트 1099에서 원격 액세스를 허용하려면 다음을 수행합니다.

    <connector connector-port="1099"/>
  3. jconsole 을 사용하여 Cryostat 에이전트에 대한 연결을 확인합니다.

    service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
  4. 아래에 설명된 대로 커넥터에서 추가 속성을 정의합니다.

    connector-host
    에이전트를 노출하는 브로커 서버 호스트입니다. 원격 액세스를 방지하려면 connector-host127.0.0.1 (localhost)으로 설정합니다.
    rmi-registry-port
    RMI 커넥터 서버가 바인딩하는 포트입니다. 설정되지 않은 경우 포트는 항상 임의입니다. 방화벽을 통해 터널링된 원격 Cryostat 연결 문제가 발생하지 않도록 이 속성을 설정합니다.
    jmx-realm
    인증에 사용할 Cryostat 영역입니다. 기본값은 JAAS 구성과 일치하는 activemq 입니다.
    object-name
    원격 커넥터를 노출하는 오브젝트 이름입니다. 기본값은 connector:name=rmi 입니다.
    보안
    커넥터가 SSL을 사용하여 보안되는지 여부를 지정합니다. 기본값은 false입니다. 안전한 통신을 위해 값을 true 로 설정합니다.
    key-store-path
    키 저장소의 위치입니다. secured="true" 를 설정한 경우 필수 항목입니다.
    key-store-password
    키 저장소 암호입니다. secured="true" 를 설정한 경우 필수 항목입니다. 암호를 암호화할 수 있습니다.
    key-store-provider
    키 저장소 공급자. secured="true" 를 설정한 경우 필수 항목입니다. 기본값은 JKS 입니다.
    trust-store-path
    신뢰 저장소의 위치입니다. secured="true" 를 설정한 경우 필수 항목입니다.
    trust-store-password
    신뢰 저장소 암호입니다. secured="true" 를 설정한 경우 필수 항목입니다. 암호를 암호화할 수 있습니다.
    trust-store-provider
    신뢰 저장소 공급자. secured="true" 를 설정한 경우 필수 항목입니다. 기본값은 JKS입니다.
    password-codec
    사용할 암호 codec의 정규화된 클래스 이름입니다. 이 작동 방식에 대한 자세한 내용은 아래에 연결된 암호 마스킹 설명서를 참조하십시오.
    참고

    RMI 레지스트리는 바인딩할 IP 주소를 선택합니다. 시스템에 여러 IP 주소/NIC가 있는 경우 artemis.profile 파일에 다음을 추가하여 사용할 IP 주소를 선택할 수 있습니다. -Djava.rmi.server.hostname=localhost

  5. Java Platform 설명서에 설명된 대로 jdk.serialFilter 를 사용하여 끝점 직렬화에 적절한 값을 설정합니다.

추가 리소스

6.2.3. CryostatServer 구성

브로커가 독립 실행형 모드로 실행되면 Java Virtual Machine의 Platform CryostatServer를 사용하여 해당 항목을 등록합니다. 기본적으로 Jolokia 는 REST를 사용하여 Cryostat 서버에 대한 액세스를 허용하도록 배포됩니다.

6.2.4. Jolokia를 사용하여 Cryostat 노출 방식

기본적으로 AMQ Broker는 웹 애플리케이션으로 배포된 Jolokia HTTP 에이전트와 함께 제공됩니다. Jolokia는 Cryostat를 노출하는 HTTP 브리지를 통해 원격 Cryostat입니다.

참고

Jolokia를 사용하려면 사용자는 < broker_instance_dir> /etc/artemis.profile 구성 파일의 hawtio. role 시스템 속성에 의해 정의된 역할에 속해야 합니다. 기본적으로 이 역할은 amq 입니다.

예 6.1. Jolokia를 사용하여 브로커의 버전 쿼리

이 예제에서는 Jolokia REST URL을 사용하여 브로커 버전을 찾습니다. Origin 플래그는 브로커 서버의 도메인 이름 또는 DNS 호스트 이름을 지정해야 합니다. 또한 Origin에 대해 지정하는 값은 CORS(Cross- Origin Resource Sharing) 사양의 < allow-origin > 항목에 해당해야 합니다.

$ curl http://admin:admin@localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker=\"0.0.0.0\"/Version -H "Origin: mydomain.com"
{"request":{"mbean":"org.apache.activemq.artemis:broker=\"0.0.0.0\"","attribute":"Version","type":"read"},"value":"2.4.0.amq-710002-redhat-1","timestamp":1527105236,"status":200}

추가 리소스

  • advantage-HTTP 브리지 사용에 대한 자세한 내용은 Jolokia 설명서 를 참조하십시오.
  • 역할에 사용자를 할당하는 방법에 대한 자세한 내용은 사용자 추가를 참조하십시오.
  • CORS(Cross-Origin Resource Sharing)를 지정하는 방법에 대한 자세한 내용은 link: Security 의 4.1.5 섹션을 참조하십시오.

6.2.5. Cryostat 관리 알림 구독

사용자 환경에서 Cryostat가 활성화된 경우 관리 알림을 구독할 수 있습니다.

프로세스

  • ObjectName org.apache.activemq.artemis:broker=" <broker-name> ".

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.