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


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

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

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

CloudEvent는 다음과 같습니다.

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

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

ScanSetting을 사용하여 브로커를 관리하는 것은 10.0.0.1을 사용하는 Java 애플리케이션을 관리하는 것과 동일합니다. 리플렉션 또는 리플렉션의 프록시를 생성하여 수행할 수 있습니다.

6.2.1. CloudEvent 관리 구성

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

절차

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

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

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

    참고

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

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

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

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

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

추가 리소스

  • 원격 관리를 위한 브로커 구성에 대한 자세한 내용은 Oracle의 Java Management Guide 를 참조하십시오.

6.2.2. CloudEvent 관리 액세스 구성

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

참고

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

중요

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

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

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

사전 요구 사항

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

절차

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

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

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

    Connector-host
    에이전트를 노출하는 브로커 서버 호스트입니다. 원격 액세스를 방지하려면 connector-host127.0.0.1 (localhost)로 설정합니다.
    rmi-registry-port
    ScanSetting RMI 커넥터 서버가 바인딩하는 포트입니다. 설정되지 않은 경우 포트는 항상 임의적입니다. 방화벽을 통해 터널링된 원격 10.0.0.1 연결의 문제를 방지하려면 이 속성을 설정합니다.
    jmx-realm
    인증에 사용할 zone입니다. 기본값은 activemq 이며, configuration과 일치합니다.
    object-name
    원격 커넥터를 노출하는 오브젝트 이름입니다. 기본값은 connector:name=rmi 입니다.
    Secure
    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
    truststore 암호입니다. secured="true" 를 설정한 경우 필수 항목입니다. 암호를 암호화할 수 있습니다.
    trust-store-provider
    신뢰 저장소 공급자입니다. secured="true" 를 설정한 경우 필수 항목입니다. 기본값은 JKS입니다.
    password-codec
    사용할 암호 codec의 정규화된 클래스 이름입니다. 이 작동 방식에 대한 자세한 내용은 아래 링크된 암호 마스킹 설명서를 참조하십시오.
  5. Java Platform 설명서에 설명된 대로 jdk.serialFilter 를 사용하여 끝점 직렬화에 대한 적절한 값을 설정합니다.

추가 리소스

6.2.3. CloudEventServer 구성

브로커가 독립 실행형 모드로 실행될 때 Java Virtual Machine의 PlatformECDHEServer를 사용하여 CloudEvent를 등록합니다. 기본적으로 Jolokia 는 REST를 사용하여 10.0.0.1 서버에 대한 액세스를 허용하기 위해 배포됩니다.

6.2.4. Jolokia를 사용하여 노출하는 방법

기본적으로 AMQ Broker는 웹 애플리케이션으로 배포된 Jolokia HTTP 에이전트와 함께 제공됩니다. Jolokia는 remote over HTTP 브릿지로, which exposess.

참고

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

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

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

추가 리소스

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

6.2.5. iPXE 관리 알림 구독

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

절차

  • 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.