AMQ Broker 관리

Red Hat AMQ Broker 7.10

AMQ Broker 7.10과 함께 사용하는 경우

초록

이 가이드에서는 AMQ Broker를 모니터링, 관리 및 업그레이드하는 방법을 설명합니다.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1장. 개요

AMQ Broker는 ActiveMQ Artemis를 기반으로 하는 고성능 메시징 구현입니다. 저널 기반 메시지 지속성이 빠르고 여러 언어, 프로토콜 및 플랫폼을 지원합니다.

AMQ Broker는 관리 콘솔, 관리 API 및 명령줄 인터페이스와 같은 브로커 인스턴스를 관리하고 상호 작용하기 위한 여러 인터페이스를 제공합니다. 또한 런타임 메트릭을 수집하고, 교착 상태 등의 문제를 사전에 모니터링하도록 브로커를 구성하고 브로커 및 큐의 상태를 대화형으로 확인할 수 있습니다.

이 가이드에서는 다음과 같은 일반적인 브로커 관리 작업에 대한 자세한 정보를 제공합니다.

  • 브로커 인스턴스 업그레이드
  • 명령줄 인터페이스 및 관리 API 사용
  • 브로커 및 큐의 상태 확인
  • 브로커 런타임 메트릭 수집
  • 중요한 브로커 작업을 사전에 모니터링

1.1. 지원되는 구성

AMQ Broker 지원 구성에 대한 최신 정보는Red Hat AMQ 7 지원 구성"Red Hat Customer Portal의 지원 구성 문서를 참조하십시오.

1.2. 문서 규칙

이 문서에서는 sudo 명령, 파일 경로 및 대체 가능한 값에 대해 다음 규칙을 사용합니다.

sudo 명령

이 문서에서는 root 권한이 필요한 모든 명령에 sudo 를 사용합니다. sudo 를 사용할 때는 변경 사항이 전체 시스템에 영향을 줄 수 있으므로 항상 주의해야 합니다.

sudo 사용에 대한 자세한 내용은 sudo 액세스 관리를 참조하십시오.

이 문서에서 파일 경로 사용 정보

이 문서에서 모든 파일 경로는 Linux, UNIX 및 유사한 운영 체제(예: /home/.. )에 유효합니다. Microsoft Windows를 사용하는 경우 동등한 Microsoft Windows 경로(예 : C:\Users\.. )를 사용해야 합니다.

교체 가능한 값

이 문서에서는 환경에 고유한 값으로 교체해야 하는 대체 가능한 값을 사용하는 경우가 있습니다. 교체할 수 있는 값은 소문자로 묶고(< >), italics 및 monospace 글꼴을 사용하여 스타일을 지정합니다. 여러 단어가 밑줄(_)으로 구분됩니다.

예를 들어 다음 명령에서 < install_dir>을 사용자 고유의 디렉터리 이름으로 바꿉니다.

$ <install_dir>/bin/artemis create mybroker

2장. 브로커 업그레이드

2.1. 업그레이드 정보

Red Hat은 AMQ Broker의 새 버전을 고객 포털에 출시합니다. 브로커를 최신 버전으로 업데이트하여 최신 개선 사항 및 수정 사항을 확보하십시오. 일반적으로 Red Hat은 다음 세 가지 방법 중 하나로 새로운 버전의 AMQ Broker를 출시합니다.

주요 릴리스
애플리케이션이 하나의 주요 릴리스에서 다음 릴리스 (예: AMQ Broker 6에서 AMQ Broker 7로 전환)로 전환되는 경우 주요 업그레이드 또는 마이그레이션이 필요합니다. 이러한 유형의 업그레이드는 이 가이드에서 다루지 않습니다.
마이너 릴리스
AMQ Broker는 정기적으로 새로운 기능을 포함하는 업데이트와 버그 및 보안 수정 사항을 제공하는 마이너 릴리스를 제공합니다. 한 AMQ Broker 마이너 릴리스에서 다른 릴리스로 업그레이드하려는 경우(예: AMQ Broker 7.0에서 AMQ Broker 7.1으로) 프라이빗, 지원되지 않는 기술 프리뷰 구성 요소를 사용하지 않는 애플리케이션에는 코드 변경이 필요하지 않아야 합니다.
마이크로 릴리스
또한 AMQ Broker는 마이너 개선 사항 및 수정이 포함된 마이크로 릴리스를 주기적으로 제공합니다. Micro 릴리스는 마이너 릴리스 버전을 마지막 숫자(예: 7.0.1에서 7.0.2로 증가함)로 늘립니다. 마이크로 릴리스에는 코드 변경이 필요하지 않지만 일부 릴리스에는 구성 변경이 필요할 수 있습니다.

2.2. 이전 7.x 버전 업그레이드

2.2.1. 브로커 인스턴스를 7.0.x에서 7.0.y로 업그레이드

7.0의 한 버전에서 다른 버전으로 AMQ 브로커를 업그레이드하는 절차는 설치 대상인 Customer Portal에서 아카이브를 다운로드한 다음 압축을 풉니다.

다음 하위 섹션에서는 다른 운영 체제에 대해 7.0.x 브로커를 업그레이드하는 방법을 설명합니다.

2.2.1.1. Linux에서 7.0.x에서 7.0.y로 업그레이드

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

사전 요구 사항

  • AMQ Broker를 업그레이드하기 전에 대상 릴리스의 릴리스 노트를 검토하십시오.

    릴리스 노트에서는 대상 릴리스의 중요한 개선 사항, 알려진 문제 및 동작 변경 사항에 대해 설명합니다.

    자세한 내용은 AMQ Broker 7.0 릴리스 정보를 참조하십시오.

절차

  1. AMQ Broker 아카이브 다운로드에 제공된 지침에 따라 Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다.

    sudo chown amq-broker:amq-broker jboss-amq-7.x.x.redhat-1.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 디렉터리가 사용됩니다.

    sudo mv jboss-amq-7.x.x.redhat-1.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 아카이브는 압축된 형식으로 유지됩니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip jboss-amq-7.x.x.redhat-1.zip
  5. 브로커가 실행 중인 경우 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 아래에 있는 것과 유사한 행이 로그 파일 끝에 표시됩니다. 이 행은 < broker_instance_dir> /log/artemis.log 에서 확인할 수 있습니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  8. < broker_instance_dir> /etc/artemis.profile 구성 파일을 편집하여 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME='/opt/redhat/jboss-amq-7.x.x-redhat-1'
  9. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  10. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 로그 파일 < broker_instance_dir> /log/artemis.log 를 열고 아래와 유사한 두 행을 찾습니다. 브로커가 활성화된 후 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0.amq-700005-redhat-1 [0.0.0.0, nodeID=4782d50d-47a2-11e7-a160-9801a793ea45]

2.2.1.2. Windows에서 7.0.x에서 7.0.y로 업그레이드

사전 요구 사항

  • AMQ Broker를 업그레이드하기 전에 대상 릴리스의 릴리스 노트를 검토하십시오.

    릴리스 노트에서는 대상 릴리스의 중요한 개선 사항, 알려진 문제 및 동작 변경 사항에 대해 설명합니다.

    자세한 내용은 AMQ Broker 7.0 릴리스 정보를 참조하십시오.

절차

  1. AMQ Broker 아카이브 다운로드에 제공된 지침에 따라 Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 다음 명령을 입력하여 브로커가 실행 중인 경우 중지합니다.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 아래에 있는 것과 유사한 행이 로그 파일 끝에 표시됩니다. 이 행은 < broker_instance_dir> \log\artemis.log 에서 확인할 수 있습니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile 구성 파일을 편집하여 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  9. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 로그 파일 < broker_instance_dir> \log\artemis.log 를 열고 아래와 유사한 두 행을 찾습니다. 브로커가 활성화된 후 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0.amq-700005-redhat-1 [0.0.0.0, nodeID=4782d50d-47a2-11e7-a160-9801a793ea45]

2.2.2. 브로커 인스턴스를 7.0.x에서 7.1.0으로 업그레이드

AMQ Broker 7.1.0에는 이전 버전에 포함되지 않은 구성 파일과 설정이 포함되어 있습니다. 브로커 인스턴스를 7.0.x에서 7.1.0으로 업그레이드하려면 이러한 새 파일 및 설정을 기존 7.0.x 브로커 인스턴스에 추가해야 합니다. 다음 하위 섹션에서는 다른 운영 체제의 경우 7.0.x 브로커 인스턴스를 7.1.0으로 업그레이드하는 방법을 설명합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.2.2.1. Linux에서 7.0.x에서 7.1.0으로 업그레이드

7.0.x 브로커를 업그레이드하기 전에 Red Hat AMQ Broker 7.1.0을 설치하고 임시 브로커 인스턴스를 생성해야 합니다. 그러면 7.0.x 브로커를 업그레이드하는 데 필요한 7.1.0 구성 파일이 생성됩니다.

사전 요구 사항

  • AMQ Broker를 업그레이드하기 전에 대상 릴리스의 릴리스 노트를 검토하십시오.

    릴리스 노트에서는 대상 릴리스의 중요한 개선 사항, 알려진 문제 및 동작 변경 사항에 대해 설명합니다.

    자세한 내용은 AMQ Broker 7.1 릴리스 정보를 참조하십시오.

  • 7.0.x 브로커를 업그레이드하기 전에 먼저 버전 7.1을 설치해야 합니다.

    Linux에 7.1을 설치하는 단계는 AMQ Broker 설치를 참조하십시오.

절차

  1. 실행 중인 경우 업그레이드하려는 7.0.x 브로커를 중지합니다.

    $ <broker_instance_dir>/bin/artemis stop
  2. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  3. 7.0.x 브로커의 < broker_instance_dir> /etc/ 디렉토리에서 artemis.profile 파일을 엽니다.

    1. 값이 AMQ Broker 7.1.0의 설치 디렉터리를 참조하도록 ARTEMIS_HOME 속성을 업데이트합니다.

      ARTEMIS_HOME="<7.1.0_install_dir>"
    2. 업데이트된 행에서 ARTEMIS_INSTANCE_URI 속성을 추가하고 7.0.x 브로커 인스턴스 디렉터리를 참조하는 값을 할당합니다.

      ARTEMIS_INSTANCE_URI="file://<7.0.x_broker_instance_dir>"
    3. jolokia.policyLocation 매개변수를 추가하고 다음 값을 할당하여 JAVA_ARGS 속성을 업데이트합니다.

      -Djolokia.policyLocation=${ARTEMIS_INSTANCE_URI}/etc/jolokia-access.xml
  4. 7.1.0 브로커 인스턴스를 생성합니다. 생성 절차에서는 7.0.x에서 7.1.0으로 업그레이드하는 데 필요한 구성 파일을 생성합니다. 다음 예제에서는 인스턴스가 upgrade_tmp 디렉토리에 생성됩니다.

    $ <7.1.0_install_dir>/bin/artemis create --allow-anonymous --user admin --password admin upgrade_tmp
  5. 임시 7.1.0 인스턴스의 etc 디렉터리에서 7.0.x 브로커의 < broker_instance_dir> /etc/ 디렉터리로 구성 파일을 복사합니다.

    1. management.xml 파일을 복사합니다.

      $ cp <temporary_7.1.0_broker_instance_dir>/etc/management.xml <7.0_broker_instance_dir>/etc/
    2. jolokia-access.xml 파일을 복사합니다.

      $ cp <temporary_7.1.0_broker_instance_dir>/etc/jolokia-access.xml <7.0_broker_instance_dir>/etc/
  6. 7.0.x 브로커의 < broker_instance_dir> /etc/ 디렉터리에서 bootstrap.xml 파일을 엽니다.

    1. 다음 두 행을 주석 처리하거나 삭제합니다.

      <app url="jolokia" war="jolokia.war"/>
      <app url="hawtio" war="hawtio-no-slf4j.war"/>
    2. 이전 단계에서 삭제된 두 행을 교체하려면 다음을 추가합니다.

      <app url="console" war="console.war"/>
  7. 업그레이드한 브로커를 시작합니다.

    $ <broker_instance_dir>/bin/artemis run

추가 리소스

브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.

2.2.2.2. Windows에서 7.0.x에서 7.1.0으로 업그레이드

7.0.x 브로커를 업그레이드하기 전에 Red Hat AMQ Broker 7.1.0을 설치하고 임시 브로커 인스턴스를 생성해야 합니다. 그러면 7.0.x 브로커를 업그레이드하는 데 필요한 7.1.0 구성 파일이 생성됩니다.

사전 요구 사항

  • AMQ Broker를 업그레이드하기 전에 대상 릴리스의 릴리스 노트를 검토하십시오.

    릴리스 노트에서는 대상 릴리스의 중요한 개선 사항, 알려진 문제 및 동작 변경 사항에 대해 설명합니다.

    자세한 내용은 AMQ Broker 7.1 릴리스 정보를 참조하십시오.

  • 7.0.x 브로커를 업그레이드하기 전에 먼저 버전 7.1을 설치해야 합니다.

    Windows에 7.1을 설치하는 단계는 AMQ Broker 설치를 참조하십시오.

절차

  1. 실행 중인 경우 업그레이드하려는 7.0.x 브로커를 중지합니다.

    > <broker_instance_dir>\bin\artemis-service.exe stop
  2. 파일 관리자를 사용하여 브로커의 인스턴스 디렉터리를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  3. 7.0.x 브로커의 < broker_instance_dir> /etc/ 디렉토리에서 artemis.profile 파일을 엽니다.

    1. 값이 AMQ Broker 7.1.0의 설치 디렉터리를 참조하도록 ARTEMIS_HOME 속성을 업데이트합니다.

      ARTEMIS_HOME="<7.1.0_install_dir>"
    2. 업데이트된 행에서 ARTEMIS_INSTANCE_URI 속성을 추가하고 7.0.x 브로커 인스턴스 디렉터리를 참조하는 값을 할당합니다.

      ARTEMIS_INSTANCE_URI="file://<7.0.x_broker_instance_dir>"
    3. jolokia.policyLocation 매개변수를 추가하고 다음 값을 할당하여 JAVA_ARGS 속성을 업데이트합니다.

      -Djolokia.policyLocation=${ARTEMIS_INSTANCE_URI}/etc/jolokia-access.xml
  4. 7.1.0 브로커 인스턴스를 생성합니다. 생성 절차에서는 7.0.x에서 7.1.0으로 업그레이드하는 데 필요한 구성 파일을 생성합니다. 다음 예제에서는 인스턴스가 upgrade_tmp 디렉토리에 생성됩니다.

    > <7.1.0_install_dir>/bin/artemis create --allow-anonymous --user admin --password admin upgrade_tmp
  5. 임시 7.1.0 인스턴스의 etc 디렉터리에서 7.0.x 브로커의 < broker_instance_dir> /etc/ 디렉터리로 구성 파일을 복사합니다.

    1. management.xml 파일을 복사합니다.

      > cp <temporary_7.1.0_broker_instance_dir>/etc/management.xml <7.0_broker_instance_dir>/etc/
    2. jolokia-access.xml 파일을 복사합니다.

      > cp <temporary_7.1.0_broker_instance_dir>/etc/jolokia-access.xml <7.0_broker_instance_dir>/etc/
  6. 7.0.x 브로커의 < broker_instance_dir> /etc/ 디렉터리에서 bootstrap.xml 파일을 엽니다.

    1. 다음 두 행을 주석 처리하거나 삭제합니다.

      <app url="jolokia" war="jolokia.war"/>
      <app url="hawtio" war="hawtio-no-slf4j.war"/>
    2. 이전 단계에서 삭제된 두 행을 교체하려면 다음을 추가합니다.

      <app url="console" war="console.war"/>
  7. 업그레이드한 브로커를 시작합니다.

    > <broker_instance_dir>\bin\artemis-service.exe start

추가 리소스

브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.

2.2.3. 브로커 인스턴스를 7.1.x에서 7.2.0으로 업그레이드

AMQ Broker 7.2.0에는 7.0.x 버전에 포함되지 않은 구성 파일 및 설정이 포함되어 있습니다. 7.0.x 인스턴스를 실행하는 경우 먼저 해당 브로커 인스턴스를 7.0.x에서 7.2.0으로 업그레이드하기 전에 해당 브로커 인스턴스를 7.0.x에서 7.1.0 으로 업그레이드해야 합니다. 다음 하위 섹션에서는 다른 운영 체제에 대해 7.1.x 브로커 인스턴스를 7.2.0으로 업그레이드하는 방법을 설명합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.2.3.1. Linux에서 7.1.x에서 7.2.0으로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

절차

  1. AMQ Broker 아카이브 다운로드에 제공된 지침에 따라 Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다.

    sudo chown amq-broker:amq-broker amq-7.x.x.redhat-1.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 디렉터리가 사용됩니다.

    sudo mv amq-7.x.x.redhat-1.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip jboss-amq-7.x.x.redhat-1.zip
  5. 브로커가 실행 중인 경우 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 아래에 있는 것과 유사한 행이 로그 파일 끝에 표시됩니다. 이 행은 < broker_instance_dir> /log/artemis.log 에서 확인할 수 있습니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. < broker_instance_dir> /etc/artemis.profile 구성 파일을 편집하여 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME='/opt/redhat/amq-7.x.x-redhat-1'
  9. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  10. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 로그 파일 < broker_instance_dir> /log/artemis.log 를 열고 아래와 유사한 두 행을 찾습니다. 브로커가 활성화된 후 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.2.3.2. Windows에서 7.1.x에서 7.2.0으로 업그레이드

절차

  1. AMQ Broker 아카이브 다운로드에 제공된 지침에 따라 Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 다음 명령을 입력하여 브로커가 실행 중인 경우 중지합니다.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 아래에 있는 것과 유사한 행이 로그 파일 끝에 표시됩니다. 이 행은 < broker_instance_dir> \log\artemis.log 에서 확인할 수 있습니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집하여 아카이브가 추출될 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  9. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 로그 파일 < broker_instance_dir> \log\artemis.log 를 열고 아래와 유사한 두 행을 찾습니다. 브로커가 활성화된 후 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

2.2.4. 7.2.x에서 7.3.0으로 브로커 인스턴스 업그레이드

다음 하위 섹션에서는 다른 운영 체제의 경우 7.2.x 브로커 인스턴스를 7.3.0으로 업그레이드하는 방법을 설명합니다.

2.2.4.1. 더 이상 사용되지 않는 디스패치 콘솔로 인한 예외 해결

버전 7.3.0부터 AMQ Broker는 더 이상 Hawtio 디스패치 콘솔 플러그인 dispatch-hawtio-console.war 와 함께 제공되지 않습니다. 이전에는 디스패치 콘솔을 사용하여 AMQ Interconnect를 관리했습니다. 그러나 AMQ Interconnect는 이제 자체 독립 실행형 웹 콘솔을 사용합니다. 이 변경 사항은 다음 섹션의 업그레이드 절차에 영향을 미칩니다.

브로커 인스턴스를 7.3.0으로 업그레이드하기 전에 추가 조치를 수행하지 않으면 업그레이드 프로세스에서 다음과 같은 예외가 생성됩니다.

2019-04-11 18:00:41,334 WARN  [org.eclipse.jetty.webapp.WebAppContext] Failed startup of context o.e.j.w.WebAppContext@1ef3efa8{/dispatch-hawtio-console,null,null}{/opt/amqbroker/amq-broker-7.3.0/web/dispatch-hawtio-console.war}: java.io.FileNotFoundException: /opt/amqbroker/amq-broker-7.3.0/web/dispatch-hawtio-console.war.

업그레이드 성공에 영향을 주지 않고 이전 예외를 무시해도 됩니다.

그러나 업그레이드 중에 이 예외가 표시되지 않도록 하려면 먼저 기존 브로커 인스턴스의 bootstrap.xml 파일에서 Hawtio 디스패치 콘솔 플러그인에 대한 참조를 제거해야 합니다. bootstrap.xml 파일은 브로커 인스턴스의 {instance_directory}/etc/ 디렉터리에 있습니다. 다음 예제는 AMQ Broker 7.2.4 인스턴스에 대한 bootstrap.xml 파일의 일부 내용을 보여줍니다.

<broker xmlns="http://activemq.org/schema">
....
   <!-- The web server is only bound to localhost by default -->
   <web bind="http://localhost:8161" path="web">
       <app url="redhat-branding" war="redhat-branding.war"/>
       <app url="artemis-plugin" war="artemis-plugin.war"/>
       <app url="dispatch-hawtio-console" war="dispatch-hawtio-console.war"/>
       <app url="console" war="console.war"/>
   </web>
</broker>

AMQ Broker를 버전 7.3.0으로 업그레이드할 때 예외를 방지하려면 이전 예제와 같이 < app url="dispatch-hawtio-console" War="dispatch-hawtio-console.war"/ > 행을 삭제합니다. 그런 다음 수정된 부트스트랩 파일을 저장하고 다음 섹션에 설명된 대로 업그레이드 프로세스를 시작합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.2.4.2. Linux에서 7.2.x에서 7.3.0으로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

절차

  1. AMQ Broker 아카이브 다운로드에 제공된 지침에 따라 Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다.

    sudo chown amq-broker:amq-broker amq-7.x.x.redhat-1.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 디렉터리가 사용됩니다.

    sudo mv amq-7.x.x.redhat-1.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip jboss-amq-7.x.x.redhat-1.zip
  5. 브로커가 실행 중인 경우 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 아래에 있는 것과 유사한 행이 로그 파일 끝에 표시됩니다. 이 행은 < broker_instance_dir> /log/artemis.log 에서 확인할 수 있습니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.6.3.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. < broker_instance_dir> /etc/artemis.profile 구성 파일을 편집하여 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME='/opt/redhat/amq-7.x.x-redhat-1'
  9. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  10. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 로그 파일 < broker_instance_dir> /log/artemis.log 를 열고 아래와 유사한 두 행을 찾습니다. 브로커가 활성화된 후 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.2.4.3. Windows에서 7.2.x에서 7.3.0으로 업그레이드

절차

  1. AMQ Broker 아카이브 다운로드에 제공된 지침에 따라 Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 다음 명령을 입력하여 브로커가 실행 중인 경우 중지합니다.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 아래에 있는 것과 유사한 행이 로그 파일 끝에 표시됩니다. 이 행은 < broker_instance_dir> \log\artemis.log 에서 확인할 수 있습니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.3.amq-720001-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집하여 아카이브가 추출될 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. < broker_instance_dir> \etc\artemis.profile.cmd 구성 파일을 편집하여 올바른 로그 관리자 버전을 참조하도록 JAVA_ARGS 환경 변수를 설정합니다.

    JAVA_ARGS=<install_dir>\lib\jboss-logmanager-2.0.3.Final-redhat-1.jar
  9. < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집하여 올바른 로그 관리자 버전을 참조하도록 부트스트랩 클래스 경로 시작 인수를 설정합니다.

    <startargument>Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.0.3.Final-redhat-1.jar</startargument>
  10. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  11. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 로그 파일 < broker_instance_dir> \log\artemis.log 를 열고 아래와 유사한 두 행을 찾습니다. 브로커가 활성화된 후 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

2.2.5. 브로커 인스턴스를 7.3.0에서 7.4.0으로 업그레이드

다음 하위 섹션에서는 다른 운영 체제의 경우 7.3.0 브로커 인스턴스를 7.4.0으로 업그레이드하는 방법을 설명합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.2.5.1. Linux의 7.3.0에서 7.4.0으로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다. 다음 예제에서는 amq-broker 라는 사용자를 보여줍니다.

    sudo chown amq-broker:amq-broker amq-broker-7.x.x.redhat-1.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 을 사용합니다.

    sudo mv amq-broker-7.x.x.redhat-1.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.x.x.redhat-1.zip
  5. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> /log/artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. &lt ;broker_instance_dir> /etc/artemis.profile 구성 파일을 편집합니다.

    1. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

      ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-redhat-1'
    2. JAVA_ARGS 속성을 편집합니다. 로그 관리자의 종속 파일을 참조하는 부트스트랩 클래스 경로 인수를 추가합니다.

      -Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.1.Final-redhat-00001.jar
  9. &lt ;broker_instance_dir&gt; /etc/bootstrap.xml 구성 파일을 편집합니다. &lt ;web& gt; 구성 요소에서 AMQ Broker의 지표 플러그인 파일에 대한 참조를 추가합니다.

    <app url="metrics" war="metrics.war"/>
  10. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  11. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> /log/artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.2.5.2. Windows에서 7.3.0에서 7.4.0으로 업그레이드

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> \log\artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. &lt ;broker_instance_dir> \etc\artemis.profile.cmd 구성 파일을 편집합니다. 올바른 로그 관리자 버전 및 종속 파일을 참조하도록 JAVA_ARGS 환경 변수를 설정합니다.

    JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.1.Final-redhat-00001.jar
  9. &lt ;broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 올바른 로그 관리자 버전 및 종속 파일을 참조하도록 부트스트랩 클래스 경로 시작 인수를 설정합니다.

    <startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.1.Final-redhat-00001.jar</startargument>
  10. &lt ;broker_instance_dir&gt; \etc\bootstrap.xml 구성 파일을 편집합니다. &lt ;web& gt; 구성 요소에서 AMQ Broker의 지표 플러그인 파일에 대한 참조를 추가합니다.

    <app url="metrics" war="metrics.war"/>
  11. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  12. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> \log\artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

2.3. 브로커 인스턴스를 7.4.0에서 7.4.x로 업그레이드

중요

AMQ Broker 7.4는 장기 지원 (LTS) 릴리스 버전으로 지정되었습니다. 최소 12개월 동안 AMQ Broker 7.4에서 일련의 마이크로 릴리스(7.4.1, 7.4.2, 등)에서 버그 수정 및 보안 권고를 사용할 수 있습니다. 즉, 새로운 마이너 릴리스로 업그레이드하지 않고도 AMQ Broker에 대한 최신 버그 수정 및 보안 공지를 받을 수 있습니다. 자세한 내용은 AMQ Broker에 대한 장기 지원을 참조하십시오.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

다음 하위 섹션에서는 다른 운영 체제의 경우 7.4.0 브로커 인스턴스를 7.4.x로 업그레이드하는 방법을 설명합니다.

2.3.1. Linux의 7.4.0에서 7.4.x로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다. 다음 예제에서는 amq-broker 라는 사용자를 보여줍니다.

    sudo chown amq-broker:amq-broker amq-broker-7.4.x.redhat-1.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 을 사용합니다.

    sudo mv amq-broker-7.4.x.redhat-1.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.4.x.redhat-1.zip
  5. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> /log/artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. &lt ;broker_instance_dir> /etc/artemis.profile 구성 파일을 편집합니다. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME='/opt/redhat/amq-broker-7.4.x-redhat-1'
  9. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  10. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> /log/artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.3.2. Windows에서 7.4.0에서 7.4.x로 업그레이드

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> \log\artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  9. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> \log\artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

2.4. 브로커 인스턴스를 7.4.x에서 7.5.0으로 업그레이드

다음 하위 섹션에서는 다른 운영 체제의 경우 7.4.x 브로커 인스턴스를 7.5.0으로 업그레이드하는 방법을 설명합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.4.1. Linux에서 7.4.x에서 7.5.0으로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다. 다음 예제에서는 amq-broker 라는 사용자를 보여줍니다.

    sudo chown amq-broker:amq-broker amq-broker-7.5.0.redhat-1.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 을 사용합니다.

    sudo mv amq-broker-7.5.0.redhat-1.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.5.0.redhat-1.zip
  5. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> /log/artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. &lt ;broker_instance_dir> /etc/artemis.profile 구성 파일을 편집합니다.

    1. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

      ARTEMIS_HOME='/opt/redhat/amq-broker-7.5.0-redhat-1'
    2. JAVA_ARGS 속성을 편집합니다. 로그 관리자의 종속 파일을 참조하는 부트스트랩 클래스 경로 인수를 추가합니다.

      -Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00001.jar
  9. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  10. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> /log/artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.4.2. Windows에서 7.4.x에서 7.5.0으로 업그레이드

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> \log\artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. &lt ;broker_instance_dir> \etc\artemis.profile.cmd 구성 파일을 편집합니다. 올바른 로그 관리자 버전 및 종속 파일을 참조하도록 JAVA_ARGS 환경 변수를 설정합니다.

    JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00001.jar
  9. &lt ;broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 올바른 로그 관리자 버전 및 종속 파일을 참조하도록 부트스트랩 클래스 경로 시작 인수를 설정합니다.

    <startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00001.jar</startargument>
  10. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  11. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> \log\artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

2.5. 브로커 인스턴스를 7.5.0에서 7.6.0으로 업그레이드

다음 하위 섹션에서는 다른 운영 체제의 경우 7.5.0 브로커 인스턴스를 7.6.0으로 업그레이드하는 방법을 설명합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.5.1. Linux에서 7.5.0에서 7.6.0으로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다. 다음 예제에서는 amq-broker 라는 사용자를 보여줍니다.

    sudo chown amq-broker:amq-broker amq-broker-7.6.0.redhat-1.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 을 사용합니다.

    sudo mv amq-broker-7.6.0.redhat-1.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.6.0.redhat-1.zip
  5. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> /log/artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. &lt ;broker_instance_dir> /etc/artemis.profile 구성 파일을 편집합니다.

    1. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

      ARTEMIS_HOME='/opt/redhat/amq-broker-7.6.0-redhat-1'
    2. JAVA_ARGS 속성을 편집합니다. 로그 관리자의 종속 파일을 참조하는 부트스트랩 클래스 경로 인수를 추가합니다.

      -Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jar
  9. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  10. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> /log/artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.5.2. Windows에서 7.5.0에서 7.6.0으로 업그레이드

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> \log\artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. &lt ;broker_instance_dir> \etc\artemis.profile.cmd 구성 파일을 편집합니다. 올바른 로그 관리자 버전 및 종속 파일을 참조하도록 JAVA_ARGS 환경 변수를 설정합니다.

    JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
  9. &lt ;broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 올바른 로그 관리자 버전 및 종속 파일을 참조하도록 부트스트랩 클래스 경로 시작 인수를 설정합니다.

    <startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
  10. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  11. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> \log\artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

2.6. 브로커 인스턴스를 7.6.0에서 7.7.0으로 업그레이드

다음 하위 섹션에서는 다른 운영 체제의 7.6.0 브로커 인스턴스를 7.7.0으로 업그레이드하는 방법을 설명합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.6.1. Linux에서 7.6.0에서 7.7.0으로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다. 다음 예제에서는 amq-broker 라는 사용자를 보여줍니다.

    sudo chown amq-broker:amq-broker amq-broker-7.7.0.redhat-1.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 을 사용합니다.

    sudo mv amq-broker-7.7.0.redhat-1.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.7.0.redhat-1.zip
  5. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> /log/artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. &lt ;broker_instance_dir> /etc/artemis.profile 구성 파일을 편집합니다.

    1. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다. 예를 들면 다음과 같습니다.

      ARTEMIS_HOME='/opt/redhat/amq-broker-7.7.0-redhat-1'
    2. JAVA_ARGS 속성을 찾습니다. 부트스트랩 클래스 경로 인수가 다음과 같이 로그 관리자에 필요한 종속 파일 버전을 참조하는지 확인합니다.

      -Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jar
  9. &lt ;broker_instance_dir&gt; /etc/logging.properties 구성 파일을 편집합니다.

    1. 구성할 추가 로거 목록에서 AMQ Broker 7.7.0에 추가된 org.apache.activemq.audit.resource 리소스 로거를 포함합니다.

      loggers=org.eclipse.jetty,org.jboss.logging,org.apache.activemq.artemis.core.server,org.apache.activemq.artemis.utils,org.apache.activemq.artemis.journal,org.apache.activemq.artemis.jms.server,org.apache.activemq.artemis.integration.bootstrap,org.apache.activemq.audit.base,org.apache.activemq.audit.message,org.apache.activemq.audit.resource
    2. 콘솔 처리기 구성 섹션 앞에 리소스 로거에 대한 기본 구성을 추가합니다.

      ..
      
      logger.org.apache.activemq.audit.resource.level=ERROR
      logger.org.apache.activemq.audit.resource.handlers=AUDIT_FILE
      logger.org.apache.activemq.audit.resource.useParentHandlers=false
      
      # Console handler configuration
      ..
  10. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  11. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> /log/artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mesq.audit.resource.handlers=AUDIT_FILE
    logger.org.apache.activemq.audit.resource.useParentHandlers=false
    sage Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.6.2. Windows에서 7.6.0에서 7.7.0으로 업그레이드

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> \log\artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. &lt ;broker_instance_dir> \etc\artemis.profile.cmd 구성 파일을 편집합니다. JAVA_ARGS 환경 변수가 다음과 같이 로그 관리자 및 종속 파일에 대한 올바른 버전을 참조하는지 확인합니다.

    JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
  9. &lt ;broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 부트스트랩 클래스 경로 시작 인수가 다음과 같이 로그 관리자 및 종속 파일의 올바른 버전을 참조하는지 확인합니다.

    <startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
  10. &lt ;broker_instance_dir&gt; \etc\logging.properties 구성 파일을 편집합니다.

    1. 구성할 추가 로거 목록에서 AMQ Broker 7.7.0에 추가된 org.apache.activemq.audit.resource 리소스 로거를 포함합니다.

      loggers=org.eclipse.jetty,org.jboss.logging,org.apache.activemq.artemis.core.server,org.apache.activemq.artemis.utils,org.apache.activemq.artemis.journal,org.apache.activemq.artemis.jms.server,org.apache.activemq.artemis.integration.bootstrap,org.apache.activemq.audit.base,org.apache.activemq.audit.message,org.apache.activemq.audit.resource
    2. 콘솔 처리기 구성 섹션 앞에 리소스 로거에 대한 기본 구성을 추가합니다.

      ..
      
      logger.org.apache.activemq.audit.resource.level=ERROR
      logger.org.apache.activemq.audit.resource.handlers=AUDIT_FILE
      logger.org.apache.activemq.audit.resource.useParentHandlers=false
      
      # Console handler configuration
      ..
  11. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  12. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> \log\artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

2.7. 브로커 인스턴스를 7.7.0에서 7.8.0으로 업그레이드

다음 하위 섹션에서는 다른 운영 체제에 대해 7.7.0 브로커 인스턴스를 7.8.0으로 업그레이드하는 방법을 설명합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.7.1. Linux의 7.7.0에서 7.8.0으로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다. 다음 예제에서는 amq-broker 라는 사용자를 보여줍니다.

    sudo chown amq-broker:amq-broker amq-broker-7.8.0.redhat-1.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 을 사용합니다.

    sudo mv amq-broker-7.8.0.redhat-1.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.8.0.redhat-1.zip
  5. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> /log/artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. &lt ;broker_instance_dir> /etc/artemis.profile 구성 파일을 편집합니다.

    1. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다. 예를 들면 다음과 같습니다.

      ARTEMIS_HOME='/opt/redhat/amq-broker-7.8.0-redhat-1'
    2. JAVA_ARGS 속성을 찾습니다. 부트스트랩 클래스 경로 인수가 다음과 같이 로그 관리자에 필요한 종속 파일 버전을 참조하는지 확인합니다.

      -Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jar
  9. &lt ;broker_instance_dir&gt; /etc/bootstrap.xml 구성 파일을 편집합니다. 요소에서 7.8에서 AMQ Management Console에 필요한 .war 파일의 이름을 업데이트합니다.

    <web bind="http://localhost:8161" path="web">
        ...
        <app url="console" war="hawtio.war"/>
        ...
    </web>
  10. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  11. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> /log/artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mesq.audit.resource.handlers=AUDIT_FILE
    logger.org.apache.activemq.audit.resource.useParentHandlers=false
    sage Broker version 2.16.0.redhat-00007 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.7.2. Windows의 7.7.0에서 7.8.0으로 업그레이드

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> \log\artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. &lt ;broker_instance_dir> \etc\artemis.profile.cmd 구성 파일을 편집합니다. JAVA_ARGS 환경 변수가 다음과 같이 로그 관리자 및 종속 파일에 대한 올바른 버전을 참조하는지 확인합니다.

    JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
  9. &lt ;broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 부트스트랩 클래스 경로 시작 인수가 다음과 같이 로그 관리자 및 종속 파일의 올바른 버전을 참조하는지 확인합니다.

    <startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
  10. &lt ;broker_instance_dir&gt; \etc\bootstrap.xml 구성 파일을 편집합니다. 요소에서 7.8에서 AMQ Management Console에 필요한 .war 파일의 이름을 업데이트합니다.

    <web bind="http://localhost:8161" path="web">
        ...
        <app url="console" war="hawtio.war"/>
        ...
    </web>
  11. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  12. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> \log\artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.16.0.redhat-00007 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

2.8. 브로커 인스턴스를 7.8.x에서 7.9.x로 업그레이드

다음 하위 섹션에서는 다른 운영 체제의 경우 7.8.x 브로커 인스턴스를 7.9.x로 업그레이드하는 방법을 설명합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.8.1. Linux에서 7.8.x에서 7.9.x로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다. 다음 예제에서는 amq-broker 라는 사용자를 보여줍니다.

    sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 을 사용합니다.

    sudo mv amq-broker-7.x.x-bin.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.x.x-bin.zip
  5. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> /log/artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. &lt ;broker_instance_dir> /etc/artemis.profile 구성 파일을 편집합니다.

    1. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다. 예를 들면 다음과 같습니다.

      ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-bin'
    2. JAVA_ARGS 속성을 찾습니다. 부트스트랩 클래스 경로 인수가 다음과 같이 로그 관리자에 필요한 종속 파일 버전을 참조하는지 확인합니다.

      -Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jar
  9. &lt ;broker_instance_dir&gt; /etc/bootstrap.xml 구성 파일을 편집합니다. 요소에서 AMQ Management Console에 필요한 .war 파일의 이름을 7.9로 업데이트합니다.

    <web bind="http://localhost:8161" path="web">
        ...
        <app url="console" war="hawtio.war"/>
        ...
    </web>
  10. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  11. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> /log/artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mes
    INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    sage Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.8.2. Windows에서 7.8.x에서 7.9.x로 업그레이드

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. amd < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> \log\artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. &lt ;broker_instance_dir> \etc\artemis.profile.cmd 구성 파일을 편집합니다. JAVA_ARGS 환경 변수가 다음과 같이 로그 관리자 및 종속 파일에 대한 올바른 버전을 참조하는지 확인합니다.

    JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
  9. &lt ;broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 부트스트랩 클래스 경로 시작 인수가 다음과 같이 로그 관리자 및 종속 파일의 올바른 버전을 참조하는지 확인합니다.

    <startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
  10. &lt ;broker_instance_dir&gt; \etc\bootstrap.xml 구성 파일을 편집합니다. 요소에서 AMQ Management Console에 필요한 .war 파일의 이름을 7.9로 업데이트합니다.

    <web bind="http://localhost:8161" path="web">
        ...
        <app url="console" war="hawtio.war"/>
        ...
    </web>
  11. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  12. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> \log\artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

2.9. 브로커 인스턴스를 7.9.x에서 7.10.x로 업그레이드

다음 하위 섹션에서는 다른 운영 체제에 대해 7.9.x 브로커 인스턴스를 7.10.x로 업그레이드하는 방법을 설명합니다.

중요

AMQ Broker 7.1.0부터 기본적으로 로컬 호스트에서 AMQ 관리 콘솔에만 액세스할 수 있습니다. 콘솔에 대한 원격 액세스 구성에 대한 자세한 내용은 AMQ Management Console에 대한 로컬 및 원격 액세스 구성을 참조하십시오.

2.9.1. Linux에서 7.9.x에서 7.10.x로 업그레이드

참고

다운로드한 아카이브의 이름은 다음 예에 사용된 내용과 다를 수 있습니다.

사전 요구 사항

  • 최소한 AMQ Broker 7.10을 실행하려면 Java 버전 11이 필요합니다. 각 AMQ Broker 호스트가 Java 버전 11 이상을 실행하고 있는지 확인합니다. 지원되는 구성에 대한 자세한 내용은 Red Hat AMQ Broker 7 지원 구성을 참조하십시오.
  • AMQ Broker 7.9가 메시지 데이터를 데이터베이스에 저장하도록 구성된 경우 HECDHEER_EXPIRATION_TIME 열의 데이터 유형은 노드 관리자 데이터베이스 테이블의 타임 스탬프 입니다. AMQ Broker 7.10에서 열의 데이터 유형이 number 로 변경되었습니다. AMQ Broker 7.10으로 업그레이드하기 전에 노드 관리자 테이블을 삭제해야 합니다. 즉, 데이터베이스에서 제거해야 합니다. 테이블을 삭제한 후 업그레이드된 브로커를 다시 시작할 때 새 스키마를 사용하여 다시 생성됩니다. 공유 저장소 HA(고가용성) 구성에서 노드 관리자 테이블은 브로커 간에 공유됩니다. 따라서 테이블을 삭제하기 전에 테이블을 공유하는 모든 브로커가 중지되었는지 확인해야 합니다. 다음 예제에서는 NODE_MANAGER_ECDHE라는 노드 관리자 테이블을 삭제합니다.
DROP TABLE NODE_MANAGER_TABLE

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 아카이브의 소유자를 AMQ Broker 설치를 보유한 사용자와 업그레이드할 수 있도록 변경합니다. 다음 예제에서는 amq-broker 라는 사용자를 보여줍니다.

    sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zip
  3. 아카이브를 AMQ Broker의 원래 설치 중에 생성된 디렉터리로 이동합니다. 다음 예에서는 /opt/redhat 을 사용합니다.

    sudo mv amq-broker-7.x.x-bin.zip /opt/redhat
  4. 디렉터리 소유자로서 압축된 아카이브의 콘텐츠를 추출합니다. 다음 예제에서 amq-broker 사용자는 unzip 명령을 사용하여 아카이브를 추출합니다.

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.x.x-bin.zip
  5. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>/bin/artemis stop
  6. 현재 사용자의 홈 디렉터리에 복사하여 브로커의 인스턴스 디렉터리를 백업합니다.

    cp -r <broker_instance_dir> ~/
  7. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> /log/artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
  8. &lt ;broker_instance_dir> /etc/artemis.profile 구성 파일을 편집합니다.

    1. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다. 예를 들면 다음과 같습니다.

      ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-bin'
  9. &lt ;broker_instance_dir&gt; /etc/bootstrap.xml 구성 파일을 편집합니다.

    요소에서 AMQ Management Console에 7.10에서 필요한 .war 파일의 이름을 업데이트합니다.

    <web path="web">
        <binding uri="https://localhost:8161"
        ...
        <app url="console" war="hawtio.war"/>
        ...
    </web>

    broker xmlns 요소에서 스키마 값을 "http://activemq.org/schema" 에서 "http://activemq.apache.org/schema" 로 변경합니다.

    <broker xmlns="http://activemq.apache.org/schema">
  10. < broker_instance_dir>/etc/management.xml 파일을 편집합니다.

    management-context xmlns 요소에서 스키마 값을 "http://activemq.org/schema" 에서 "http://activemq.apache.org/schema" 로 변경합니다.

    <management-context xmlns="http://activemq.apache.org/schema">
  11. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>/bin/artemis run
  12. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> /log/artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mes
    INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    sage Broker version 2.21.0.redhat-00025 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> /etc/artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 etc/data/ 디렉터리에만 저장할 수 있었습니다.

2.9.2. Windows에서 7.9.x에서 7.10.x로 업그레이드

사전 요구 사항

  • 최소한 AMQ Broker 7.10을 실행하려면 Java 버전 11이 필요합니다. 각 AMQ Broker 호스트가 Java 버전 11 이상을 실행하고 있는지 확인합니다. 지원되는 구성에 대한 자세한 내용은 Red Hat AMQ Broker 7 지원 구성을 참조하십시오.
  • AMQ Broker 7.9가 메시지 데이터를 데이터베이스에 저장하도록 구성된 경우 HECDHEER_EXPIRATION_TIME 열의 데이터 유형은 노드 관리자 데이터베이스 테이블의 타임 스탬프 입니다. AMQ Broker 7.10에서 열의 데이터 유형이 number 로 변경되었습니다. AMQ Broker 7.10으로 업그레이드하기 전에 노드 관리자 테이블을 삭제해야 합니다. 즉, 데이터베이스에서 제거해야 합니다. 테이블을 삭제한 후 업그레이드된 브로커를 다시 시작할 때 새 스키마를 사용하여 다시 생성됩니다. 공유 저장소 HA(고가용성) 구성에서 노드 관리자 테이블은 브로커 간에 공유됩니다. 따라서 테이블을 삭제하기 전에 테이블을 공유하는 모든 브로커가 중지되었는지 확인해야 합니다. 다음 예제에서는 NODE_MANAGER_ECDHE라는 노드 관리자 테이블을 삭제합니다.
DROP TABLE NODE_MANAGER_TABLE

절차

  1. Red Hat 고객 포털에서 원하는 아카이브를 다운로드합니다. AMQ Broker 아카이브 다운로드에 제공된 지침을 따르십시오.
  2. 파일 관리자를 사용하여 AMQ Broker를 마지막 설치 중에 생성한 폴더로 아카이브를 이동합니다.
  3. 아카이브의 콘텐츠를 추출합니다. .zip 파일을 마우스 오른쪽 버튼으로 클릭하고 압축 풀기 를 선택합니다.
  4. 브로커가 실행 중이면 중지하십시오.

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 파일 관리자를 사용하여 브로커를 백업합니다.

    1. < broker_instance_dir> 폴더를 마우스 오른쪽 버튼으로 클릭하고 복사를 선택합니다.
    2. 동일한 창을 마우스 오른쪽 버튼으로 클릭하고 Paste 를 선택합니다.
  6. (선택 사항) 브로커의 현재 버전을 기록해 두십시오. 브로커가 중지되면 < broker_instance_dir> \log\artemis.log 파일 끝에 아래와 유사한 행이 표시됩니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010[4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
  7. < broker_instance_dir> \etc\artemis.profile.cmd 및 < broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 아카이브를 추출할 때 생성된 새 디렉터리로 ARTEMIS_HOME 속성을 설정합니다.

    ARTEMIS_HOME=<install_dir>
  8. &lt ;broker_instance_dir> \etc\artemis.profile.cmd 구성 파일을 편집합니다. JAVA_ARGS 환경 변수가 다음과 같이 로그 관리자 및 종속 파일에 대한 올바른 버전을 참조하는지 확인합니다.

    JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
  9. &lt ;broker_instance_dir> \bin\artemis-service.xml 구성 파일을 편집합니다. 부트스트랩 클래스 경로 시작 인수가 다음과 같이 로그 관리자 및 종속 파일의 올바른 버전을 참조하는지 확인합니다.

    <startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
  10. &lt ;broker_instance_dir&gt; \etc\bootstrap.xml 구성 파일을 편집합니다.

    요소에서 AMQ Management Console에 7.10에서 필요한 .war 파일의 이름을 업데이트합니다.

    <web path="web">
        <binding uri="https://localhost:8161"
        ...
        <app url="console" war="hawtio.war"/>
        ...
    </web>

    broker xmlns 요소에서 스키마 값을 "http://activemq.org/schema" 에서 "http://activemq.apache.org/schema" 로 변경합니다.

    <broker xmlns="http://activemq.apache.org/schema">
  11. < broker_instance_dir>/etc/management.xml 파일을 편집합니다.

    management-context xmlns 요소에서 스키마 값을 "http://activemq.org/schema" 에서 "http://activemq.apache.org/schema" 로 변경합니다.

    <management-context xmlns="http://activemq.apache.org/schema">
  12. 업그레이드된 브로커를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  13. (선택 사항) 브로커가 실행 중이며 버전이 변경되었는지 확인합니다. 브로커를 시작한 후 < broker_instance_dir> \log\artemis.log 파일을 엽니다. 아래와 유사한 두 행을 찾습니다. 브로커가 있을 때 로그에 표시되는 새 버전 번호를 기록해 둡니다.

    INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
    ...
    INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.21.0.redhat-00025 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]

추가 리소스

  • 브로커 인스턴스를 생성하는 방법에 대한 자세한 내용은 브로커 인스턴스 생성을 참조하십시오.
  • 이제 broker 인스턴스 디렉터리 외부 위치를 포함하여 브로커 인스턴스의 구성 파일 및 데이터를 사용자 정의 디렉터리에 저장할 수 있습니다. < broker_instance_dir> \etc\artemis.profile 파일에서 broker 인스턴스를 생성한 후 사용자 지정 디렉터리의 위치를 지정하여 ARTEMIS_INSTANCE_ETC_URI 속성을 업데이트합니다. 이전에는 이러한 구성 파일과 데이터는 broker 인스턴스의 디렉토리 내의 \etc\data 디렉터리에만 저장할 수 있었습니다.

3장. 명령줄 인터페이스 사용

CLI(명령줄 인터페이스)를 사용하면 대화형 터미널을 사용하여 메시지 브로커와 상호 작용할 수 있습니다. CLI를 사용하여 브로커 작업을 관리하고 메시지를 구성하고 유용한 명령을 입력합니다.

CLI(명령줄 인터페이스)를 사용하면 대화형 프로세스를 사용하여 사용자와 역할을 파일에 추가할 수 있습니다.

3.1. 브로커 인스턴스 시작

브로커 인스턴스는 로그 및 데이터 파일과 같은 모든 구성 및 런타임 데이터를 포함하는 디렉터리입니다. 런타임 데이터는 고유한 브로커 프로세스와 연결되어 있습니다.

Artemis 스크립트, Linux 서비스 또는 Windows 서비스로 사용하여 전경에서 브로커를 시작할 수 있습니다.

3.1.1. 브로커 인스턴스 시작

브로커 인스턴스가 생성되면 artemis run 명령을 사용하여 시작합니다.

절차

  1. 설치 중에 생성한 사용자 계정으로 전환합니다.

    $ su - amq-broker
  2. artemis run 명령을 사용하여 브로커 인스턴스를 시작합니다.

    $ /var/opt/amq-broker/mybroker/bin/artemis run
    
              __  __  ____    ____            _
        /\   |  \/  |/ __ \  |  _ \          | |
       /  \  | \  / | |  | | | |_) |_ __ ___ | | _____ _ __
      / /\ \ | |\/| | |  | | |  _ <| '__/ _ \| |/ / _ \ '__|
     / ____ \| |  | | |__| | | |_) | | | (_) |   <  __/ |
    /_/    \_\_|  |_|\___\_\ |____/|_|  \___/|_|\_\___|_|
    
    Red Hat JBoss AMQ 7.2.1.GA
    
    10:53:43,959 INFO  [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server
    10:53:44,076 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=./data/journal,bindingsDirectory=./data/bindings,largeMessagesDirectory=./data/large-messages,pagingDirectory=./data/paging)
    10:53:44,099 INFO  [org.apache.activemq.artemis.core.server] AMQ221012: Using AIO Journal
    ...

    브로커는 다음 정보를 사용하여 로그 출력을 시작하고 표시합니다.

    • 트랜잭션 로그 및 클러스터 구성의 위치입니다.
    • 메시지 지속성(이 경우 AIO)에 사용되는 저널 유형입니다.
    • 클라이언트 연결을 허용할 수 있는 URI입니다.

      기본적으로 포트 61616은 지원되는 모든 프로토콜(CORE, MQTT, AMQP, STOMP, HORNETQ 및 OPENWIRE)의 연결을 허용할 수 있습니다. 또한 각 프로토콜마다 별도의 개별 포트도 있습니다.

    • 웹 콘솔은 http://localhost:8161 에서 사용할 수 있습니다.
    • Jolokia 서비스(RR을 통한 JMX)는 http://localhost:8161/jolokia 에서 사용할 수 있습니다.

3.1.2. Linux 서비스로 브로커 시작

브로커가 Linux에 설치된 경우 이를 서비스로 실행할 수 있습니다.

절차

  1. /etc/systemd/system/ 디렉터리에 새 amq-broker.service 파일을 만듭니다.
  2. 다음 텍스트를 파일에 복사합니다.

    broker 인스턴스 생성 중에 제공된 정보에 따라 경로 및 사용자 필드를 수정합니다. 아래 예제에서 사용자 amq-broker/var/opt/amq-broker/ 디렉터리에 설치된 브로커 서비스를 시작합니다.

    [Unit]
    Description=AMQ Broker
    After=syslog.target network.target
    
    [Service]
    ExecStart=/var/opt/amq-broker/mybroker/bin/artemis run
    Restart=on-failure
    User=amq-broker
    Group=amq-broker
    
    # A workaround for Java signal handling
    SuccessExitStatus=143
    
    [Install]
    WantedBy=multi-user.target
  3. 터미널을 엽니다.
  4. 다음 명령을 사용하여 브로커 서비스를 활성화합니다.

    sudo systemctl enable amq-broker
  5. 다음 명령을 사용하여 broker 서비스를 실행합니다.

    sudo systemctl start amq-broker

3.1.3. Windows 서비스로 브로커 시작

브로커가 Windows에 설치된 경우 이를 서비스로 실행할 수 있습니다.

절차

  1. 명령 프롬프트를 열어 명령을 입력합니다.
  2. 다음 명령을 사용하여 브로커를 서비스로 설치합니다.

    <broker_instance_dir>\bin\artemis-service.exe install
  3. 다음 명령을 사용하여 서비스를 시작합니다.

    <broker_instance_dir>\bin\artemis-service.exe start
  4. (선택 사항) 서비스를 설치 제거합니다.

    <broker_instance_dir>\bin\artemis-service.exe uninstall

3.2. 브로커 인스턴스 중지

브로커 인스턴스를 수동으로 중지하거나 정상적으로 종료하도록 브로커를 구성합니다.

3.2.1. 브로커 인스턴스 중지

독립 실행형 브로커를 생성하고 테스트 메시지를 생성 및 사용한 후 브로커 인스턴스를 중지할 수 있습니다.

이 절차에서는 브로커를 수동으로 중지하므로 모든 클라이언트 연결을 강제로 종료합니다. 프로덕션 환경에서는 클라이언트 연결을 올바르게 닫을 수 있도록 브로커를 정상적으로 중지하도록 구성해야 합니다.

절차

  • artemis stop 명령을 사용하여 브로커 인스턴스를 중지합니다.

    $ /var/opt/amq-broker/mybroker/bin/artemis stop
    2018-12-03 14:37:30,630 INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.1.amq-720004-redhat-1 [b6c244ef-f1cb-11e8-a2d7-0800271b03bd] stopped, uptime 35 minutes
    Server stopped!

3.2.2. 브로커 인스턴스를 정상적으로 중지

수동 종료는 stop 명령을 입력한 후 모든 클라이언트의 연결을 강제로 끊습니다. 대안으로 graceful-shutdown-enabled 구성 요소를 사용하여 정상적으로 종료하도록 브로커를 구성합니다.

graceful-shutdown-enabledtrue 로 설정하면 중지 명령을 입력한 후에는 새 클라이언트 연결이 허용되지 않습니다. 그러나 기존 연결은 종료 프로세스를 시작하기 전에 클라이언트 측에서 닫을 수 있습니다. graceful-shutdown-enabled 의 기본값은 false 입니다.

연결이 브로커 측에서 강제로 닫히기 전에 클라이언트가 연결을 끊는 데 시간(밀리초)을 설정하려면 graceful-shutdown-timeout 구성 요소를 사용합니다. 모든 연결이 닫히면 종료 프로세스가 시작됩니다. graceful-shutdown-timeout 을 사용하는 한 가지 장점은 클라이언트 연결이 종료를 지연시키지 않는다는 것입니다. graceful-shutdown-timeout 의 기본값은 -1 입니다. 즉, 브로커가 클라이언트가 연결을 끊을 때까지 무기한 대기합니다.

다음 절차에서는 시간 초과를 사용하는 정상 종료를 구성하는 방법을 보여줍니다.

절차

  1. 설정 파일 < broker_instance_dir> \etc\broker.xml 을 엽니다.
  2. graceful-shutdown-enabled 구성 요소를 추가하고 값을 true 로 설정합니다.

    <configuration>
         <core>
              ...
              <graceful-shutdown-enabled>
                  true
              </graceful-shutdown-enabled>
              ...
         </core>
    </configuration>
  3. graceful-shutdown-timeout 구성 요소를 추가하고 시간 초과 값을 밀리초 단위로 설정합니다. 다음 예에서 중지 명령을 실행한 후 클라이언트 연결은 강제로 30초(30000 밀리초)를 종료합니다.

    <configuration>
         <core>
              ...
              <graceful-shutdown-enabled>
                  true
              </graceful-shutdown-enabled>
              <graceful-shutdown-timeout>
                  30000
              </graceful-shutdown-timeout>
              ...
         </core>
    </configuration>

3.3. 패킷을 가로채기하여 메시지 감사

브로커를 입력하거나 종료하고 패킷을 감사하거나 메시지를 필터링하는 패킷을 가로채기합니다. 인터셉터는 가로채는 패킷을 변경합니다. 이로 인해 인터셉터가 강력하지만 잠재적으로 위험해질 수 있습니다.

고객의 비즈니스 요구 사항에 맞게 인터셉터를 개발합니다. 인터셉터는 프로토콜마다 다르며 적절한 인터페이스를 구현해야 합니다.

인터셉터는 부울 값을 반환하는 intercept() 메서드를 구현해야 합니다. 값이 true 이면 메시지 패킷은 계속됩니다. false 인 경우 프로세스가 중단되고 다른 인터셉터가 호출되지 않으며 메시지 패킷은 더 이상 처리되지 않습니다.

3.3.1. 인터셉터 생성

인터셉터는 가로채는 패킷을 변경할 수 있습니다. 직접 들어오고 나가는 인터셉터를 만들 수 있습니다. 모든 인터셉터는 프로토콜별로 다르며 각각 서버를 입력하거나 종료하는 모든 패킷에 대해 호출됩니다. 이를 통해 인터셉터를 생성하여 패킷 감사와 같은 비즈니스 요구 사항을 충족할 수 있습니다.

인터셉터와 해당 종속 항목을 브로커의 Java 클래스 경로에 배치해야 합니다. 기본적으로 classpath의 일부이므로 < broker_instance_dir> /lib 디렉터리를 사용할 수 있습니다.

다음 예제에서는 전달된 각 패킷의 크기를 확인하는 인터셉터를 생성하는 방법을 보여줍니다.

참고

예제에서는 각 프로토콜에 대해 특정 인터페이스를 구현합니다.

절차

  1. 적절한 인터페이스를 구현하고 intercept() 메서드를 덮어씁니다.

    1. AMQP 프로토콜을 사용하는 경우 org.apache.activemq.artemis.protocol.amqp.broker.AmqpInterceptor 인터페이스를 구현합니다.

      package com.example;
      
      import org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage;
      import org.apache.activemq.artemis.protocol.amqp.broker.AmqpInterceptor;
      import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
      
      public class MyInterceptor implements AmqpInterceptor
      {
        private final int ACCEPTABLE_SIZE = 1024;
      
        @Override
        public boolean intercept(final AMQPMessage message, RemotingConnection connection)
        {
          int size = message.getEncodeSize();
          if (size <= ACCEPTABLE_SIZE) {
            System.out.println("This AMQPMessage has an acceptable size.");
            return true;
          }
          return false;
        }
      }
    2. 코어 프로토콜을 사용하는 경우 인터셉터는 org.apache.artemis.activemq.api.core.Interceptor 인터페이스를 구현해야 합니다.

      package com.example;
      
      import org.apache.artemis.activemq.api.core.Interceptor;
      import org.apache.activemq.artemis.core.protocol.core.Packet;
      import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
      
      public class MyInterceptor implements Interceptor
      {
        private final int ACCEPTABLE_SIZE = 1024;
      
        @Override
        boolean intercept(Packet packet, RemotingConnection connection)
        throws ActiveMQException
        {
          int size = packet.getPacketSize();
          if (size <= ACCEPTABLE_SIZE) {
            System.out.println("This Packet has an acceptable size.");
            return true;
          }
          return false;
        }
      }
    3. MQTT 프로토콜을 사용하는 경우 org.apache.activemq.artemis.core.protocol.mqtt.MQTTInterceptor 인터페이스를 구현합니다.

      package com.example;
      
      import org.apache.activemq.artemis.core.protocol.mqtt.MQTTInterceptor;
      import io.netty.handler.codec.mqtt.MqttMessage;
      import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
      
      public class MyInterceptor implements Interceptor
      {
        private final int ACCEPTABLE_SIZE = 1024;
      
        @Override
        boolean intercept(MqttMessage mqttMessage, RemotingConnection connection)
        throws ActiveMQException
        {
          byte[] msg = (mqttMessage.toString()).getBytes();
          int size = msg.length;
          if (size <= ACCEPTABLE_SIZE) {
            System.out.println("This MqttMessage has an acceptable size.");
            return true;
          }
          return false;
        }
      }
    4. STOMP 프로토콜을 사용하는 경우 org.apache.activemq.artemis.core.protocol.stomp.StompInterceptor 인터페이스를 구현합니다.

      package com.example;
      
      import org.apache.activemq.artemis.core.protocol.stomp.StompFrameInterceptor;
      import org.apache.activemq.artemis.core.protocol.stomp.StompFrame;
      import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
      
      public class MyInterceptor implements Interceptor
      {
        private final int ACCEPTABLE_SIZE = 1024;
      
        @Override
        boolean intercept(StompFrame stompFrame, RemotingConnection connection)
        throws ActiveMQException
        {
          int size = stompFrame.getEncodedSize();
          if (size <= ACCEPTABLE_SIZE) {
            System.out.println("This StompFrame has an acceptable size.");
            return true;
          }
          return false;
        }
      }

3.3.2. 인터셉터를 사용하도록 브로커 구성

사전 요구 사항

  • 인터셉터 클래스를 생성하고 브로커의 Java 클래스 경로에 (및 해당 종속 항목)를 추가합니다. 기본적으로 classpath의 일부이므로 < broker_instance_dir> /lib 디렉터리를 사용할 수 있습니다.

절차

  1. Open <broker_instance_dir>/etc/broker.xml
  2. <broker _instance_dir> /etc/broker.xml에 구성을 추가하여 인터셉터를 사용하도록 브로커를 구성합니다.

    1. 인터셉터가 수신되는 메시지의 경우 class-nameremoting-incoming-interceptors 목록에 추가합니다.

      <configuration>
        <core>
          ...
          <remoting-incoming-interceptors>
             <class-name>org.example.MyIncomingInterceptor</class-name>
          </remoting-incoming-interceptors>
          ...
        </core>
      </configuration>
    2. 인터셉터가 발신 메시지의 용도인 경우 class-nameremoting-outgoing-interceptors 목록에 추가하십시오.

      <configuration>
        <core>
          ...
          <remoting-outgoing-interceptors>
             <class-name>org.example.MyOutgoingInterceptor</class-name>
          </remoting-outgoing-interceptors>
        </core>
      </configuration>

3.3.3. 클라이언트 측의 인터셉터

클라이언트는 인터셉터를 사용하여 클라이언트가 서버로 전송하거나 서버가 클라이언트로 전송한 패킷을 가로챌 수 있습니다. 브로커 측 인터셉터에서 false 값을 반환하면 다른 인터셉터가 호출되지 않고 클라이언트가 패킷을 추가로 처리하지 않습니다. 이 프로세스는 발신 패킷이 차단 방식으로 전송되지 않는 한 투명하게 수행됩니다. 이 경우 ActiveMQException 이 호출자에게 throw됩니다. throw된 ActiveMQException 에는 false 값을 반환한 인터셉터 이름이 포함되어 있습니다.

서버에서 클라이언트 인터셉터 클래스와 해당 종속 항목을 클라이언트의 Java 클래스 경로에 추가하고 적절하게 인스턴스화하고 호출해야 합니다.

3.4. 브로커 및 큐의 상태 확인

AMQ Broker에는 브로커 토폴로지의 브로커 및 큐에서 다양한 상태 점검을 수행할 수 있는 명령줄 유틸리티가 포함되어 있습니다.

다음 예제에서는 유틸리티를 사용하여 상태 점검을 실행하는 방법을 보여줍니다.

절차

  1. 브로커 토폴로지에서 특정 브로커(즉, 노드)에 대해 실행할 수 있는 검사 목록을 참조하십시오.

    $ <broker_instance_dir>/bin/artemis help check node

    artemis check node 명령과 함께 사용할 수 있는 옵션 세트를 설명하는 출력이 표시됩니다.

    NAME
            artemis check node - Check a node
    
    SYNOPSIS
            artemis check node [--backup] [--clientID <clientID>]
                    [--diskUsage <diskUsage>] [--fail-at-end] [--live]
                    [--memoryUsage <memoryUsage>] [--name <name>] [--password <password>]
                    [--peers <peers>] [--protocol <protocol>] [--silent]
                    [--timeout <timeout>] [--up] [--url <brokerURL>] [--user <user>]
                    [--verbose]
    
    OPTIONS
            --backup
                Check that the node has a backup
    
            --clientID <clientID>
                ClientID to be associated with connection
    
            --diskUsage <diskUsage>
                Disk usage percentage to check or -1 to use the max-disk-usage
    
            --fail-at-end
                If a particular module check fails, continue the rest of the checks
    
            --live
                Check that the node has a live
    
            --memoryUsage <memoryUsage>
                Memory usage percentage to check
    
            --name <name>
                Name of the target to check
    
            --password <password>
                Password used to connect
    
            --peers <peers>
                Number of peers to check
    
            --protocol <protocol>
                Protocol used. Valid values are amqp or core. Default=core.
    
            --silent
                It will disable all the inputs, and it would make a best guess for any required input
    
            --timeout <timeout>
                Time to wait for the check execution, in milliseconds
    
            --up
                Check that the node is started, it is executed by default if there are no other checks
    
            --url <brokerURL>
                URL towards the broker. (default: tcp://localhost:61616)
    
            --user <user>
                User used to connect
    
            --verbose
                Adds more information on the execution
  2. 예를 들어 로컬 브로커의 디스크 사용량이 브로커에 대해 구성된 최대 디스크 사용량보다 낮은지 확인합니다.

    $ <broker_instance_dir>/bin/artemis check node --url tcp://localhost:61616 --diskUsage -1
    
    Connection brokerURL = tcp://localhost:61616
    Running NodeCheck
    Checking that the disk usage is less then the max-disk-usage ... success
    Checks run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.065 sec - NodeCheck

    이전 예에서 --diskUsage 옵션에 대해 -1 값을 지정하면 유틸리티에서 브로커에 대해 구성된 최대 디스크 사용량에 대해 디스크 사용량을 확인합니다. 브로커의 최대 디스크 사용량은 broker.xml 구성 파일에서 max-disk-usage 매개변수를 사용하여 구성됩니다. max-disk-usage 에 지정된 값은 브로커가 사용할 수 있는 사용 가능한 물리 디스크 공간의 백분율을 나타냅니다.

  3. 브로커 토폴로지의 특정 큐에 대해 실행할 수 있는 검사 목록을 참조하십시오.

    $ <broker_instance_dir>/bin/artemis help check queue

    Artemis 검사 대기열 명령과 함께 사용할 수 있는 옵션 세트를 설명하는 출력이 표시됩니다.

    NAME
            artemis check queue - Check a queue
    
    SYNOPSIS
            artemis check queue [--browse <browse>] [--clientID <clientID>]
                    [--consume <consume>] [--fail-at-end] [--name <name>]
                    [--password <password>] [--produce <produce>] [--protocol <protocol>]
                    [--silent] [--timeout <timeout>] [--up] [--url <brokerURL>]
                    [--user <user>] [--verbose]
    
    OPTIONS
            --browse <browse>
                Number of the messages to browse or -1 to check that the queue is
                browsable
    
            --clientID <clientID>
                ClientID to be associated with connection
    
            --consume <consume>
                Number of the messages to consume or -1 to check that the queue is consumable
    
            --fail-at-end
                If a particular module check fails, continue the rest of the checks
    
            --name <name>
                Name of the target to check
    
            --password <password>
                Password used to connect
    
            --produce <produce>
                Number of the messages to produce
    
            --protocol <protocol>
                Protocol used. Valid values are amqp or core. Default=core.
    
            --silent
                It will disable all the inputs, and it would make a best guess for any required input
    
            --timeout <timeout>
                Time to wait for the check execution, in milliseconds
    
            --up
                Check that the queue exists and is not paused, it is executed by default if there are no other checks
    
            --url <brokerURL>
                URL towards the broker. (default: tcp://localhost:61616)
    
            --user <user>
                User used to connect
    
            --verbose
                Adds more information on the execution
  4. 유틸리티는 단일 명령으로 여러 옵션을 실행할 수 있습니다. 예를 들어 로컬 브로커의 기본 helloworld 대기열에서 1000개의 메시지의 프로덕션, 검색 및 소비를 확인하려면 다음 명령을 사용합니다.

    $ <broker_instance_dir>/bin/artemis check queue --name helloworld --produce 1000 --browse 1000 --consume 1000
    
    Connection brokerURL = tcp://localhost:61616
    Running QueueCheck
    Checking that a producer can send 1000 messages to the queue helloworld ... success
    Checking that a consumer can browse 1000 messages from the queue helloworld ... success
    Checking that a consumer can consume 1000 messages from the queue helloworld ... success
    Checks run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.882 sec - QueueCheck

    이전 예에서 대기열 확인을 실행할 때 브로커 URL을 지정하지 않은 것을 관찰합니다. URL을 명시적으로 지정하지 않으면 유틸리티는 기본값 tcp://localhost:61616 을 사용합니다.

3.5. 명령줄 툴

AMQ Broker에는 CLI(명령줄 인터페이스) 도구 세트가 포함되어 있으므로 메시징 저널을 관리할 수 있습니다. 아래 표에는 각 도구의 이름과 해당 설명이 나열되어 있습니다.

설명

address

주소 툴 그룹 (create/delete/update/show) (예: ./artemis address create).

브라우저

인스턴스에서 메시지를 찾습니다.

소비자

인스턴스에서 메시지를 사용합니다.

data

저널 레코드에 대한 보고서를 출력하고 데이터를 압축합니다.

decode

인코인에서 내부 저널 형식을 가져옵니다.

encode

String으로 인코딩된 저널의 내부 형식을 표시합니다.

EXP

특수하고 독립적인 XML 형식을 사용하여 메시지 데이터를 내보냅니다.

help

도움말 정보를 표시합니다.

imp

exp 에서 제공하는 출력을 사용하여 저널을 실행 중인 브로커로 가져옵니다.

kill

--allow-kill으로 시작된 브로커 인스턴스를 종료합니다.

mask

암호를 마스킹하고 암호를 출력합니다.

perf-journal

현재 데이터 폴더에 사용해야 하는 journal-buffer 타임아웃을 계산합니다.

대기열 툴 그룹(create/delete/update/stat) (예: ./artemis 대기열 생성).

run

broker 인스턴스를 실행합니다.

중지

브로커 인스턴스를 중지합니다.

user

기본 파일 기반 사용자 (add/rm/list/reset) (예: ./artemis 사용자 목록)

각 툴에 사용할 수 있는 전체 명령 목록은 help 매개변수 다음에 툴 이름을 사용합니다. 예를 들어 아래 예에서 CLI 출력에는 사용자가 ./artemis 도움말 데이터를 입력한 후 데이터 도구에 사용 가능한 모든 명령이 나열됩니다.

$ ./artemis help data

NAME
        artemis data - data tools group
        (print|imp|exp|encode|decode|compact) (example ./artemis data print)

SYNOPSIS
        artemis data
        artemis data compact [--broker <brokerConfig>] [--verbose]
                [--paging <paging>] [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]
        artemis data decode [--broker <brokerConfig>] [--suffix <suffix>]
                [--verbose] [--paging <paging>] [--prefix <prefix>] [--file-size <size>]
                [--directory <directory>] --input <input> [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]
        artemis data encode [--directory <directory>] [--broker <brokerConfig>]
                [--suffix <suffix>] [--verbose] [--paging <paging>] [--prefix <prefix>]
                [--file-size <size>] [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]
        artemis data exp [--broker <brokerConfig>] [--verbose]
                [--paging <paging>] [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]
        artemis data imp [--host <host>] [--verbose] [--port <port>]
                [--password <password>] [--transaction] --input <input> [--user <user>]
        artemis data print [--broker <brokerConfig>] [--verbose]
                [--paging <paging>] [--journal <journal>]
                [--large-messages <largeMessges>] [--bindings <binding>]

COMMANDS
        With no arguments, Display help information

        print
            Print data records information (WARNING: don't use while a
            production server is running)

        ...

각 명령을 실행하는 방법에 대한 자세한 내용은 help 매개변수를 사용할 수 있습니다. 예를 들어 CLI는 사용자가 ./artemis 도움말 데이터를 출력 한 후 data print 명령에 대한 자세한 정보를 나열합니다.

$ ./artemis help data print

NAME
        artemis data print - Print data records information (WARNING: don't use
        while a production server is running)

SYNOPSIS
        artemis data print [--bindings <binding>] [--journal <journal>]
                [--paging <paging>]

OPTIONS
        --bindings <binding>
            The folder used for bindings (default ../data/bindings)

        --journal <journal>
            The folder used for messages journal (default ../data/journal)

        --paging <paging>
            The folder used for paging (default ../data/paging)

4장. AMQ 관리 콘솔 사용

AMQ Management Console은 웹 브라우저를 사용하여 AMQ Broker를 관리할 수 있는 AMQ Broker 설치에 포함된 웹 콘솔입니다.

AMQ 관리 콘솔은 hawtio 를 기반으로 합니다.

4.1. 개요

AMQ Broker는 완전한 기능을 갖춘 메시지 지향 미들웨어 브로커입니다. 특수 대기열 동작, 메시지 지속성 및 관리 가능성을 제공합니다. 여러 프로토콜과 클라이언트 언어를 지원하므로 많은 애플리케이션 자산을 사용할 수 있습니다.

AMQ Broker의 주요 기능은 다음을 수행할 수 있습니다.

  • AMQ 브로커 및 클라이언트 모니터링

    • 토폴로지 보기
    • 한 눈에 네트워크 상태 보기
  • 다음을 사용하여 AMQ 브로커를 관리합니다.

    • AMQ 관리 콘솔
    • CLI(명령줄 인터페이스)
    • 관리 API

AMQ Management Console에서 지원되는 웹 브라우저는 Firefox와 Chrome입니다. 지원되는 브라우저 버전에 대한 자세한 내용은 AMQ 7 지원 구성을 참조하십시오.

4.2. AMQ 관리 콘솔에 대한 로컬 및 원격 액세스 구성

이 섹션의 절차에서는 AMQ 관리 콘솔에 대한 로컬 및 원격 액세스를 구성하는 방법을 보여줍니다.

콘솔에 대한 원격 액세스에는 다음 두 가지 형식 중 하나를 사용할 수 있습니다.

  • 로컬 브로커의 콘솔 세션 내에서 연결 탭을 사용하여 다른 원격 브로커에 연결합니다.
  • 원격 호스트에서 로컬 브로커의 외부 연결 가능 IP 주소를 사용하여 로컬 브로커의 콘솔에 연결합니다.

사전 요구 사항

  • 최소 AMQ Broker 7.1.0으로 업그레이드해야 합니다. 이 업그레이드의 일부로 jolokia-access.xml 이라는 액세스 관리 구성 파일이 브로커 인스턴스에 추가됩니다. 업그레이드에 대한 자세한 내용은 Broker 인스턴스 7.0.x에서 7.1.0으로 업그레이드를 참조하십시오.

절차

  1. < broker_instance_dir>/etc/bootstrap.xml 파일을 엽니다.
  2. 요소 내에서 웹 포트는 기본적으로 localhost 에만 바인딩되어 있는지 확인합니다.

    <web path="web">
      <binding uri="http://localhost:8161">
        <app url="redhat-branding" war="redhat-branding.war"/>
        <app url="artemis-plugin" war="artemis-plugin.war"/>
        <app url="dispatch-hawtio-console" war="dispatch-hawtio-console.war"/>
        <app url="console" war="console.war"/>
      </binding>
    </web>
  3. 원격 호스트에서 로컬 브로커의 콘솔에 연결할 수 있도록 하려면 네트워크 연결 가능 인터페이스로 웹 포트 바인딩을 변경합니다. 예를 들면 다음과 같습니다.

    <web path="web">
      <binding uri="http://0.0.0.0:8161">

    이전 예에서 0.0.0.0 을 지정하면 웹 포트를 로컬 브로커의 모든 인터페이스에 바인딩합니다.

  4. bootstrap.xml 파일을 저장합니다.
  5. &lt ;broker_instance_dir> /etc/jolokia-access.xml 파일을 엽니다.
  6. < cors > (즉, Cross-Origin Resource Sharing) 요소 내에서 콘솔에 액세스를 허용하려는 각 HTTP origin 요청 헤더에 대해 allow-origin 항목을 추가합니다. 예를 들면 다음과 같습니다.

    <cors>
       <allow-origin>*://localhost*</allow-origin>
       <allow-origin>*://192.168.0.49*</allow-origin>
       <allow-origin>*://192.168.0.51*</allow-origin>
       <!-- Check for the proper origin on the server side, too -->
       <strict-checking/>
    </cors>

    이전 구성에서 다음 연결을 허용하도록 지정합니다.

    • 로컬 호스트(즉, 로컬 브로커 인스턴스의 호스트 시스템)에서 콘솔에 연결합니다.

      • 첫 번째 별표(*) 와일드카드 문자를 사용하면 보안 연결을 위해 콘솔을 구성했는지 여부에 따라 연결 요청에 http 또는 https 스키마를 지정할 수 있습니다.
      • 두 번째 별표 와일드카드 문자를 사용하면 호스트 시스템의 모든 포트를 연결에 사용할 수 있습니다.
    • 로컬 브로커의 외부 연결 가능 IP 주소를 사용하여 원격 호스트에서 로컬 브로커의 콘솔에 연결합니다. 이 경우 로컬 브로커의 외부에서 접근할 수 있는 IP 주소는 192.168.0.49 입니다.
    • 다른 원격 브로커에서 로컬 브로커로의 콘솔 세션 내에서 연결이 열립니다. 이 경우 원격 브로커의 IP 주소는 192.168.0.51 입니다.
  7. jolokia-access.xml 파일을 저장합니다.
  8. &lt ;broker_instance_dir&gt; /etc/artemis.profile 파일을 엽니다.
  9. 콘솔에서 Connect 탭을 활성화하려면 Dhawtio.disableProxy 인수 값을 false 로 설정합니다.

    -Dhawtio.disableProxy=false
    중요

    콘솔에서 원격 연결을 활성화하는 것이 좋습니다(즉, 콘솔이 보안 네트워크에 노출되는 경우에만 Dhawtio.disableProxy 인수 값을 false)로 설정하는 것이 좋습니다.

  10. Java 시스템 인수의 JAVA_ARGS 목록에 새 인수 Dhawtio.proxyWhitelist 를 추가합니다. 쉼표로 구분된 목록으로 로컬 브로커에서 연결할 원격 브로커의 IP 주소를 지정합니다(즉, 로컬 브로커에서 실행되는 콘솔 세션 내 연결 탭을 사용하여). 예를 들면 다음과 같습니다.

    -Dhawtio.proxyWhitelist=192.168.0.51

    위의 구성에 따라 로컬 브로커의 콘솔 세션 내 Connect 탭을 사용하여 IP 주소가 192.168.0.51 인 다른 원격 브로커에 연결할 수 있습니다.

  11. aretmis.profile 파일을 저장합니다.

추가 리소스

4.3. AMQ 관리 콘솔에 액세스

이 섹션의 절차에서는 다음을 수행하는 방법을 보여줍니다.

  • 로컬 브로커의 AMQ 관리 콘솔을 엽니 다
  • 로컬 브로커의 콘솔 세션 내에서 다른 브로커에 연결
  • 로컬 브로커의 외부 연결 가능 IP 주소를 사용하여 원격 호스트에서 로컬 브로커의 콘솔 인스턴스를 엽니다.

사전 요구 사항

절차

  1. 웹 브라우저에서 로컬 브로커의 콘솔 주소로 이동합니다.

    콘솔 주소는 http:// <host:port>/console/login 입니다. 기본 주소를 사용하는 경우 http://localhost:8161/console/login 으로 이동합니다. 그렇지 않으면 < broker_instance_dir> /etc/bootstrap.xml 구성 파일에서 요소의 bind 속성에 대해 정의된 host 및 port 값을 사용합니다.

    그림 4.1. 콘솔 로그인 페이지

    AMQ 관리 콘솔 로그인 페이지
  2. 브로커를 만들 때 생성한 기본 사용자 이름 및 암호를 사용하여 AMQ 관리 콘솔에 로그인합니다.
  3. 다른 로컬 브로커에 연결하려면 로컬 브로커의 콘솔 세션에서 원격 브로커에 연결합니다.

    1. 왼쪽 메뉴에서 연결 탭을 클릭합니다.
    2. 기본 창의 Remote 탭에서 Add connection 버튼을 클릭합니다.
    3. 연결 추가 대화 상자에서 다음 세부 정보를 지정합니다.

      이름
      원격 연결의 이름입니다(예: my_other_broker ).
      스키마
      원격 연결에 사용할 프로토콜입니다. 보안되지 않은 연결에는 http 또는 보안 연결에 https 를 선택합니다.
      호스트
      원격 브로커의 IP 주소입니다. 이 원격 브로커에 대한 콘솔 액세스 권한이 이미 구성되어 있어야 합니다.
      포트
      원격 연결에 사용할 로컬 브로커의 포트입니다. < broker_instance_dir> /etc/bootstrap.xml 구성 파일에서 요소의 bind 속성에 대해 정의된 포트 값을 지정합니다. 기본값은 8161 입니다.
      경로
      콘솔 액세스에 사용할 경로입니다. console/jolokia 를 지정합니다.
    4. 연결을 테스트하려면 연결 테스트 버튼을 클릭합니다.

      연결 테스트에 성공하면 Add (추가) 버튼을 클릭합니다. 연결 테스트에 실패하면 필요에 따라 연결 세부 정보를 검토하고 수정합니다. 연결을 다시 테스트합니다.

    5. 원격 페이지에서 추가한 연결의 경우 연결 버튼을 클릭합니다.

      원격 브로커의 콘솔 인스턴스에 대한 새 웹 브라우저 탭이 열립니다.

    6. 로그인 대화 상자에서 원격 브로커의 사용자 이름과 암호를 입력합니다. Log In 을 클릭합니다.

      원격 브로커의 콘솔 인스턴스가 열립니다.

  4. 원격 호스트에서 로컬 브로커의 콘솔에 연결하려면 웹 브라우저에서 로컬 브로커의 Jolokia 엔드포인트를 지정합니다. 이 끝점에는 원격 콘솔 액세스를 구성할 때 로컬 브로커에 대해 지정한 외부 연결 가능 IP 주소가 포함됩니다. 예를 들면 다음과 같습니다.

    http://192.168.0.49/console/jolokia

4.4. AMQ 관리 콘솔 구성

사용자 액세스 권한을 구성하고 브로커의 리소스에 대한 액세스 권한을 요청합니다.

4.4.1. Red Hat Single Sign-On을 사용하여 AMQ 관리 콘솔 보안

사전 요구 사항

  • Red Hat Single Sign-On 7.4

절차

  1. Red Hat Single Sign-On 구성:

    1. AMQ Management Console을 보호하는 데 사용할 Red Hat Single Sign-On 영역으로 이동합니다. Red Hat Single Sign-On의 각 영역에는 Broker 라는 클라이언트가 포함되어 있습니다. 이 클라이언트는 AMQ와 관련이 없습니다.
    2. Red Hat Single Sign-On에서 새 클라이언트를 만듭니다(예: artemis-console ).
    3. 클라이언트 설정 페이지로 이동하여 다음을 설정합니다.

      • 유효한 리디렉션 URI 를 AMQ 관리 콘솔 URL 다음에 * 로 리디렉션합니다. 예를 들면 다음과 같습니다.

        https://broker.example.com:8161/console/*
      • 웹 원본유효한 리디렉션 URI와 동일한 값으로 지정됩니다. Red Hat Single Sign-On을 사용하면 + 를 입력하면 허용되는 CORS 원본에 Valid Redirect URI 의 값이 포함되어 있음을 나타냅니다.
    4. 클라이언트의 역할을 생성합니다(예: guest ).
    5. AMQ 관리 콘솔에 액세스해야 하는 모든 사용자에게 위의 역할(예: Red Hat Single Sign-On 그룹 사용)이 할당되었는지 확인합니다.
  2. AMQ Broker 인스턴스를 구성합니다.

    1. < broker-instance-dir> /instances/broker0/etc/login.config 파일에 다음을 추가하여 Red Hat Single Sign-On을 사용하도록 AMQ 관리 콘솔을 구성합니다.

      console {
          org.keycloak.adapters.jaas.BearerTokenLoginModule required
              keycloak-config-file="${artemis.instance}/etc/keycloak-bearer-token.json"
              role-principal-class=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal
          ;
      };

      이 구성을 추가하면 Red Hat Single Sign-On의 전달자 토큰에 대한 요구 사항입니다. Red Hat Single Sign-On에 대한 연결은 다음 단계에 설명된 대로 keycloak-bearer-token.json 파일에 정의되어 있습니다.

    2. 다음 콘텐츠로 < broker-instance-dir> /etc/keycloak-bearer-token.json 파일을 생성하여 전달자 토큰 교환에 사용되는 Red Hat Single Sign-On에 대한 연결을 지정합니다.

      {
        "realm": "<realm-name>",
        "resource": "<client-name>",
        "auth-server-url": "<RHSSO-URL>/auth",
        "principal-attribute": "preferred_username",
        "use-resource-role-mappings": true,
        "ssl-required": "external",
        "confidential-port": 0
      }
      <realm-name>
      Red Hat Single Sign-On의 영역 이름
      <client-name>
      Red Hat Single Sign-On의 클라이언트 이름
      <RHSSO-URL>
      Red Hat Single Sign-On의 URL
    3. Red Hat Single Sign -On 인증 엔드포인트를 지정하려면 다음 콘텐츠로 <broker-instance-dir> /etc/keycloak-js-token.json 파일을 생성합니다.

      {
        "realm": "<realm-name>",
        "clientId": "<client-name>",
        "url": "<RHSSO-URL>/auth"
      }
    4. < broker-instance-dir> /etc/broker.xml 파일을 편집하여 보안 설정을 구성합니다.

      예를 들어, mq 역할의 사용자가 메시지를 사용하고 guest 역할의 사용자가 메시지를 보낼 수 있도록 하려면 다음을 추가합니다.

               <security-setting match="Info">
                  <permission roles="amq" type="createDurableQueue"/>
                  <permission roles="amq" type="deleteDurableQueue"/>
                  <permission roles="amq" type="createNonDurableQueue"/>
                  <permission roles="amq" type="deleteNonDurableQueue"/>
                  <permission roles="guest" type="send"/>
                  <permission roles="amq" type="consume"/>
               </security-setting>
  3. AMQ Broker 인스턴스를 실행하고 AMQ 관리 콘솔 구성을 확인합니다.

4.4.2. AMQ 관리 콘솔에 대한 사용자 액세스 설정

브로커 로그인 인증 정보를 사용하여 AMQ 관리 콘솔에 액세스할 수 있습니다. 다음 표에서는 AMQ Management Console에 액세스하기 위해 추가 브로커 사용자를 추가하는 다양한 방법에 대한 정보를 제공합니다.

인증 방법설명

게스트 인증

익명 액세스를 활성화합니다. 이 구성에서는 자격 증명이 없거나 잘못된 자격 증명을 사용하여 연결하는 모든 사용자가 자동으로 인증되고 특정 사용자 및 역할이 할당됩니다.

자세한 내용은 AMQ Broker 구성에서 게스트 액세스 구성을 참조하십시오.

기본 사용자 및 암호 인증

각 사용자에 대해 사용자 이름 및 암호를 정의하고 보안 역할을 할당해야 합니다. 사용자는 이러한 인증 정보를 사용하여 AMQ 관리 콘솔에만 로그인할 수 있습니다.

자세한 내용은 AMQ Broker 구성의 기본 사용자 및 암호 인증 구성을 참조하십시오.

LDAP 인증

사용자는 중앙 X.500 디렉터리 서버에 저장된 사용자 데이터에 대해 자격 증명을 확인하여 인증 및 권한을 부여합니다.

자세한 내용은 AMQ Broker 구성에서 클라이언트를 인증하도록 LDAP 구성을 참조하십시오.

4.4.3. AMQ 관리 콘솔에 대한 네트워크 액세스 보안

콘솔이 VMWare 또는 인터넷을 통해 액세스하는 경우 AMQ Management Console을 보호하려면 SSL을 사용하여 http 대신 https 를 사용하도록 지정합니다.

사전 요구 사항

다음은 < broker_instance_dir> /etc/ 디렉터리에 있어야 합니다.

  • Java 키 저장소
  • Java 신뢰 저장소(클라이언트 인증이 필요한 경우에만 필요)

절차

  1. < broker_instance_dir>/etc/bootstrap.xml 파일을 엽니다.
  2. &lt ;web& gt; 요소에서 다음 특성을 추가합니다.

    <web path="web">
        <binding uri="https://0.0.0.0:8161" keyStorePath="<path_to_keystore>" keyStorePassword="<password>"
        clientAuth="<true/false>" trustStorePath="<path_to_truststore>" trustStorePassword="<password>">
        </binding>
    </web>
    bind
    콘솔에 대한 보안 연결을 위해 URI 스키마를 https 로 변경합니다.
    keyStorePath

    키 저장소 파일의 경로입니다. 예를 들면 다음과 같습니다.

    keyStorePath="<broker_instance_dir>/etc/keystore.jks"
    keyStorePassword
    키 저장소 암호입니다. 이 암호는 암호화할 수 있습니다.
    clientAuth
    클라이언트 인증이 필요한지 여부를 지정합니다. 기본값은 false입니다.
    trustStorePath
    신뢰 저장소 파일의 경로입니다. clientAuthtrue 로 설정된 경우에만 이 속성을 정의해야 합니다.
    trustStorePassword
    신뢰 저장소 암호입니다. 이 암호는 암호화할 수 있습니다.

추가 리소스

4.4.4. 인증서 기반 인증을 사용하도록 AMQ 관리 콘솔 구성

암호 대신 인증서를 사용하여 사용자를 인증하도록 AMQ Management Console을 구성할 수 있습니다.

절차

  1. 신뢰할 수 있는 인증 기관에서 브로커 및 클라이언트의 인증서를 얻거나 자체 서명된 인증서를 생성합니다. 자체 서명된 인증서를 생성하려면 다음 단계를 완료합니다.

    1. 브로커에 대한 자체 서명 인증서를 생성합니다.

      $ keytool -storetype pkcs12 -keystore broker-keystore.p12 -storepass securepass -keypass securepass -alias client -genkey -keyalg "RSA" -keysize 2048 -dname "CN=ActiveMQ Broker, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -ext bc=ca:false -ext eku=cA
    2. 클라이언트와 공유할 수 있도록 브로커 키 저장소에서 인증서를 내보냅니다.

      $ keytool -storetype pkcs12 -keystore broker-keystore.p12 -storepass securepass -alias client -exportcert -rfc > broker.crt
    3. 클라이언트에서 브로커 인증서를 클라이언트 신뢰 저장소로 가져옵니다.

      $ keytool -storetype pkcs12 -keystore client-truststore.p12 -storepass securepass -keypass securepass -importcert -alias client-ca -file broker.crt -noprompt
    4. 클라이언트에서 클라이언트에 대한 자체 서명된 인증서를 생성합니다.

      $ keytool -storetype pkcs12 -keystore client-keystore.p12 -storepass securepass -keypass securepass -alias client -genkey -keyalg "RSA" -keysize 2048 -dname "CN=ActiveMQ Client, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -ext bc=ca:false -ext eku=cA
    5. 브로커 신뢰 저장소에 추가할 수 있도록 클라이언트 키 저장소에서 파일로 클라이언트 인증서를 내보냅니다.

      $ keytool -storetype pkcs12 -keystore client-keystore.p12 -storepass securepass -alias client -exportcert -rfc > client.crt
    6. 클라이언트 인증서를 브로커 신뢰 저장소로 가져옵니다.

      $ keytool -storetype pkcs12 -keystore client-truststore.p12 -storepass securepass -keypass securepass -importcert -alias client-ca -file client.crt -noprompt
      참고

      브로커 시스템에서 키 저장소 및 신뢰 저장소 파일이 브로커에 액세스할 수 있는 위치에 있는지 확인합니다.

  2. < broker_instance_dir>/etc/bootstrap.xml 파일에서 웹 구성을 업데이트하여 브로커 콘솔에 대한 HTTPS 프로토콜 및 클라이언트 인증을 활성화합니다. 예를 들면 다음과 같습니다.

    ...
    <web path="web">
        <binding uri="https://localhost:8161" keyStorePath="${artemis.instance}/etc/server-keystore.p12" keyStorePassword="password"
        clientAuth="true" trustStorePath="${artemis.instance}/etc/client-truststore.p12" trustStorePassword="password">
        ...
        </binding>
    </web>
    ...
    바인딩 uri
    SSL을 활성화하고 호스트 이름과 포트를 추가하려면 https 프로토콜을 지정합니다.
    keystorePath
    브로커 인증서가 설치된 키 저장소 경로입니다.
    keystorePassword
    브로커 인증서가 설치된 키 저장소의 암호입니다.
    ClientAuth
    클라이언트가 브로커 콘솔에 연결을 시도할 때 각 클라이언트가 인증서를 제공하도록 브로커를 구성하려면 true로 설정합니다.
    trustStorePath
    클라이언트가 자체 서명된 인증서를 사용하는 경우 클라이언트 인증서가 설치된 신뢰 저장소의 경로를 지정합니다.
    trustStorePassword

    클라이언트가 자체 서명된 인증서를 사용하는 경우 클라이언트 인증서가 설치된 신뢰 저장소의 암호를 지정합니다.

    참고. 클라이언트가 자체 서명된 인증서를 사용하는 경우에만 trustStorePathtrustStorePassword 속성을 구성해야 합니다.

  3. 각 클라이언트 인증서에서 Subject Distinguished Names (DN)를 가져와서 각 클라이언트 인증서와 브로커 사용자 간의 매핑을 생성할 수 있습니다.

    1. 클라이언트의 키 저장소 파일에서 각 클라이언트 인증서를 임시 파일로 내보냅니다. 예를 들면 다음과 같습니다.

      keytool -export -file <file_name> -alias broker-localhost -keystore broker.ks -storepass <password>
    2. 내보낸 인증서의 내용을 출력합니다.

      keytool -printcert -file <file_name>

      출력은 아래 표시된 것과 유사합니다.

      Owner: CN=AMQ Client, OU=Artemis, O=AMQ, L=AMQ, ST=AMQ, C=AMQ
      Issuer: CN=AMQ Client, OU=Artemis, O=AMQ, L=AMQ, ST=AMQ, C=AMQ
      Serial number: 51461f5d
      Valid from: Sun Apr 17 12:20:14 IST 2022 until: Sat Jul 16 12:20:14 IST 2022
      Certificate fingerprints:
      	 SHA1: EC:94:13:16:04:93:57:4F:FD:CA:AD:D8:32:68:A4:13:CC:EA:7A:67
      	 SHA256: 85:7F:D5:4A:69:80:3B:5B:86:27:99:A7:97:B8:E4:E8:7D:6F:D1:53:08:D8:7A:BA:A7:0A:7A:96:F3:6B:98:81

      Owner 항목은 주체 DN입니다. 주체 DN을 입력하는 데 사용되는 형식은 플랫폼에 따라 다릅니다. 위의 문자열을 다음과 같이 나타낼 수도 있습니다.

      Owner: `CN=localhost,\ OU=broker,\ O=Unknown,\ L=Unknown,\ ST=Unknown,\ C=Unknown`
  4. 브로커 콘솔에 대해 인증서 기반 인증을 활성화합니다.

    1. &lt ;broker_instance_dir&gt; /etc/login.config 구성 파일을 엽니다. 인증서 로그인 모듈을 추가하고 사용자 및 역할 속성 파일을 참조합니다. 예를 들면 다음과 같습니다.

      activemq {
          org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule
              debug=true
              org.apache.activemq.jaas.textfiledn.user="artemis-users.properties"
              org.apache.activemq.jaas.textfiledn.role="artemis-roles.properties";
      };
      org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule
      구현 클래스입니다.
      org.apache.activemq.jaas.textfiledn.user
      로그인 구성 파일이 포함된 디렉터리를 기준으로 사용자 속성 파일의 위치를 지정합니다.
      org.apache.activemq.jaas.textfiledn.role

      로그인 모듈 구현에 대해 사용자를 정의된 역할에 매핑하는 속성 파일을 지정합니다.

      참고

      < broker_instance_dir> /etc/login.config 파일에서 인증서 로그인 모듈 구성의 기본 이름을 변경하는 경우 새 이름과 일치하도록 < broker_instance_dir>/etc/artemis.profile 파일에서 -dhawtio. realm 인수 값을 업데이트해야 합니다. 기본 이름은 activemq 입니다.

    2. &lt ;broker_instance_dir>/etc/artemis-users.properties 파일을 엽니다. 각 클라이언트 인증서에서 브로커 사용자에게 제공한 주체 DNS를 추가하여 클라이언트 인증서와 브로커 사용자 간 매핑을 생성합니다. 예를 들면 다음과 같습니다.

      user1=CN=user1,O=Progress,C=US
      user2=CN=user2,O=Progress,C=US

      이 예에서 user1 broker 사용자는 Subject Distinguished Name이 CN=user1,O=Progress,C=US Subject DN인 클라이언트 인증서에 매핑됩니다. 클라이언트 인증서와 broker 사용자 간 매핑을 생성한 후 브로커는 인증서를 사용하여 사용자를 인증할 수 있습니다.

    3. &lt ;broker_instance_dir>/etc/artemis-roles.properties 파일을 엽니다. < broker_instance_dir>/etc/artemis.profile 파일에서 HAWTIO_ROLE 변수에 지정된 역할에 추가하여 콘솔에 로그인할 수 있는 권한을 사용자에게 부여합니다. HAWTIO_ROLE 변수의 기본값은 amq 입니다. 예를 들면 다음과 같습니다.

      amq=user1, user2
  5. HTTPS 프로토콜에 대해 다음과 같은 권장 보안 속성을 구성합니다.

    1. &lt ;broker_instance_dir>/etc/artemis.profile 파일을 엽니다.
    2. HTTPS 요청만 AMQ Management Console로 변경하고 HTTP 요청을 HTTPS로 변환할 수 있도록 hawtio.http.strictTransportSecurity 속성을 설정합니다. 예를 들면 다음과 같습니다.

      hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
    3. hawtio.http.publicKeyPins 속성을 설정하여 웹 브라우저에 특정 암호화 공개 키를 AMQ Management Console과 연결하여 위조된 인증서를 사용하여 "man-in-the-middle" 공격의 위험을 줄입니다. 예를 들면 다음과 같습니다.

      hawtio.http.publicKeyPins = pin-sha256="..."; max-age=5184000; includeSubDomains

4.5. AMQ 관리 콘솔을 사용하여 브로커 관리

AMQ 관리 콘솔을 사용하여 실행 중인 브로커에 대한 정보를 보고 다음 리소스를 관리할 수 있습니다.

  • 수신 네트워크 연결(수용자)
  • 주소
  • 대기열

4.5.1. 브로커에 대한 세부 정보 보기

브로커가 구성된 방법을 보려면 왼쪽 메뉴에서 Artemis 를 클릭합니다. 폴더 트리에서 로컬 브로커는 기본적으로 선택됩니다.

기본 창에서 다음 탭을 사용할 수 있습니다.

상태

는 가동 시간 및 클러스터 정보와 같은 브로커의 현재 상태에 대한 정보를 표시합니다. 또한 브로커가 현재 사용 중인 주소 메모리의 양을 표시합니다. 그래프는 이 값을 global-max-size 구성 매개변수의 비율로 표시합니다.

그림 4.2. 상태 탭

*상태* 탭
연결
클라이언트, 클러스터 및 브리지 연결을 포함하여 브로커 연결에 대한 정보를 표시합니다.
세션
브로커에 현재 열려 있는 모든 세션에 대한 정보를 표시합니다.
Consumer
현재 브로커에 열려 있는 모든 소비자에 대한 정보를 표시합니다.
생산자
현재 브로커에 열려 있는 생산자에 대한 정보를 표시합니다.
주소
브로커의 주소에 대한 정보를 표시합니다. 여기에는 저장 및 전달 주소와 같은 내부 주소가 포함됩니다.
대기열
브로커의 큐에 대한 정보를 표시합니다. 여기에는 저장 및 전달 대기열과 같은 내부 대기열이 포함됩니다.
속성
브로커에 구성된 속성에 대한 자세한 정보를 표시합니다.
작업
콘솔의 브로커에서 실행할 수 있는 operations를 표시합니다. 작업을 클릭하면 작업에 대한 매개변수 값을 지정할 수 있는 대화 상자가 열립니다.
차트
브로커에 구성된 속성에 대한 실시간 데이터를 표시합니다. 차트를 편집하여 차트에 포함된 속성을 지정할 수 있습니다.
브로커 다이어그램
클러스터 토폴로지 다이어그램을 표시합니다. 여기에는 클러스터의 모든 브로커와 로컬 브로커의 모든 주소 및 큐가 포함됩니다.

4.5.2. 브로커 다이어그램 보기

브로커(라이브 및 백업 브로커), 생산자 및 소비자, 주소, 대기열을 포함하여 토폴로지의 모든 AMQ Broker 리소스에 대한 다이어그램을 볼 수 있습니다.

절차

  1. 왼쪽 메뉴에서 Artemis 를 클릭합니다.
  2. 기본 창에서 브로커 다이어그램 탭을 클릭합니다.

    콘솔에 클러스터 토폴로지 다이어그램이 표시됩니다. 여기에는 그림과 같이 클러스터의 모든 브로커와 로컬 브로커의 모든 주소 및 대기열이 포함됩니다.

    그림 4.3. 브로커 다이어그램

    *broker 다이어그램* 탭
  3. 다이어그램에 표시되는 항목을 변경하려면 다이어그램 상단에 있는 확인란을 사용합니다. 새로 고침 을 클릭합니다.
  4. 로컬 브로커 또는 연결된 주소 또는 큐의 속성을 표시하려면 다이어그램에서 해당 노드를 클릭합니다. 예를 들어 다음 그림은 로컬 브로커의 속성도 포함하는 다이어그램을 보여줍니다.

    그림 4.4. 특성을 포함한 브로커 다이어그램

    *broker 다이어그램* 탭

4.5.3. 승인자 보기

브로커에 대해 구성된 어셉터에 대한 세부 정보를 볼 수 있습니다.

절차

  1. 왼쪽 메뉴에서 Artemis 를 클릭합니다.
  2. 폴더 트리에서 수락 자를 클릭합니다.
  3. 어셉터 구성 방법에 대한 세부 정보를 보려면 수락자를 클릭합니다.

    아래 그림과 같이 콘솔에는 특성 탭의 해당 속성이 표시됩니다.

    그림 4.5. AMQP 어셉터 속성

    AMQP 어셉터 속성
  4. 속성에 대한 전체 세부 정보를 보려면 속성을 클릭합니다. 세부 정보를 표시하는 추가 창이 열립니다.

4.5.4. 주소 및 대기열 관리

주소는 메시징 끝점을 나타냅니다. 구성 내에서 일반적인 주소에는 고유한 이름이 지정됩니다.

큐는 주소와 연결되어 있습니다. 주소당 대기열이 여러 개 있을 수 있습니다. 들어오는 메시지가 주소와 일치하면 구성된 라우팅 유형에 따라 메시지가 하나 이상의 큐로 전송됩니다. 대기열을 자동으로 생성하고 삭제하도록 구성할 수 있습니다.

4.5.4.1. 주소 생성

일반적인 주소에는 고유한 이름, 0개 이상의 대기열 및 라우팅 유형이 지정됩니다.

라우팅 유형에서는 주소와 연결된 큐로 메시지를 전송하는 방법을 결정합니다. 주소는 두 가지 라우팅 유형으로 구성할 수 있습니다.

메시지가...로 라우팅하려는 경우

이 라우팅 유형을 사용합니다.

일치하는 주소 내의 단일 큐(point-to-point) 방식으로.

Anycast

일치하는 주소 내의 모든 대기열을 게시-서브스크립션 방식으로 수행합니다.

멀티 캐스트

주소와 큐를 생성 및 구성한 다음 더 이상 사용하지 않을 때 삭제할 수 있습니다.

절차

  1. 왼쪽 메뉴에서 Artemis 를 클릭합니다.
  2. 폴더 트리에서 주소를 클릭합니다.
  3. 기본 창에서 주소 만들기 탭을 클릭합니다.

    아래 그림과 같이 주소를 만들 페이지가 표시됩니다.

    그림 4.6. 주소 페이지 생성

    AMQ Management Console에서 주소 생성
  4. 다음 필드를 완료하십시오.

    주소 이름
    주소의 라우팅 이름입니다.
    라우팅 유형

    다음 옵션 중 하나를 선택합니다.

    • 멀티캐스트: 주소로 전송된 메시지는 모든 구독자에게 게시-서브스크립션 방식으로 배포됩니다.
    • Anycast: 이 주소로 전송된 메시지는 지점 간 방식으로 하나의 구독자에만 배포됩니다.
    • both: 주소당 두 개 이상의 라우팅 유형을 정의할 수 있습니다. 이것은 일반적으로 안티 패턴을 유발하고 권장되지 않습니다.

      참고

      주소에 두 라우팅 유형을 모두 사용하고 클라이언트에 우선 순위가 표시되지 않으면 브로커의 기본값은 anycast 라우팅 유형입니다. 한 가지 예외는 클라이언트가 MQTT 프로토콜을 사용하는 경우입니다. 이 경우 기본 라우팅 유형은 multicast 입니다.

  5. 주소 생성을 클릭합니다.

4.5.4.2. 주소로 메시지 전송

다음 절차에서는 콘솔을 사용하여 주소로 메시지를 보내는 방법을 보여줍니다.

절차

  1. 왼쪽 메뉴에서 Artemis 를 클릭합니다.
  2. 폴더 트리에서 주소를 선택합니다.
  3. 기본 창의 탐색 모음에서 추가메시지 보내기 를 클릭합니다.

    그림에 표시된 대로 메시지를 생성할 페이지가 표시됩니다.

    그림 4.7. 메시지 전송 페이지

    AMQ 관리 콘솔 전송 메시지
  4. 필요한 경우 헤더 추가 버튼을 클릭하여 메시지 헤더 정보를 추가합니다.
  5. 메시지 본문을 입력합니다.
  6. 형식 드롭다운 메뉴에서 메시지 본문 형식에 대한 옵션을 선택한 다음 형식을 클릭합니다. 메시지 본문은 사용자가 선택한 형식에 대해 사람이 읽을 수 있는 스타일로 포맷됩니다.
  7. 메시지 보내기 를 클릭합니다.

    메시지가 전송됩니다.

  8. 추가 메시지를 보내려면 입력한 정보를 변경한 다음 메시지 보내기 를 클릭합니다.

4.5.4.3. 대기열 생성

큐는 생산자와 소비자 간에 채널을 제공합니다.

사전 요구 사항

  • 큐를 바인딩할 주소가 있어야 합니다. 콘솔을 사용하여 주소를 생성하는 방법을 알아보려면 4.5.4.1절. “주소 생성” 를 참조하십시오.

절차

  1. 왼쪽 메뉴에서 Artemis 를 클릭합니다.
  2. 폴더 트리에서 큐를 바인딩할 주소를 선택합니다.
  3. 기본 창에서 대기열 생성 탭을 클릭합니다.

    아래 그림과 같이 큐를 만들 수 있는 페이지가 표시됩니다.

    그림 4.8. 대기열 생성 페이지

    AMQ 관리 콘솔 대기열 생성
  4. 다음 필드를 완료하십시오.

    대기열 이름
    큐의 고유 이름입니다.
    라우팅 유형

    다음 옵션 중 하나를 선택합니다.

    • 멀티 캐스트: 상위 주소로 전송된 메시지는 주소에 바인딩된 모든 큐에 배포됩니다.
    • Anycast: 상위 주소에 바인딩된 하나의 큐만 메시지 사본을 수신합니다. 메시지는 주소에 바인딩된 모든 큐에 균등하게 배포됩니다.
    용어집
    이 옵션을 선택하면 큐와 해당 메시지가 계속 유지됩니다.
    filter
    브로커에 연결할 때 사용할 사용자 이름입니다.
    최대 소비자
    지정된 시간에 큐에 액세스할 수 있는 최대 소비자 수입니다.
    소비자가 없을 때 제거
    선택하는 경우 사용자가 연결되지 않은 경우 큐가 제거됩니다.
  5. 큐 생성을 클릭합니다.

4.5.4.4. 큐의 상태 확인

차트는 브로커의 대기열 상태에 대한 실시간 보기를 제공합니다.

절차

  1. 왼쪽 메뉴에서 Artemis 를 클릭합니다.
  2. 폴더 트리에서 큐로 이동합니다.
  3. 기본 창에서 차트 탭을 클릭합니다.

    콘솔에는 모든 큐 속성에 대한 실시간 데이터가 표시되는 차트가 표시됩니다.

    그림 4.9. 큐의 차트 탭

    큐의 차트 탭
    참고

    주소에서 여러 큐에 대한 차트를 보려면 큐가 포함된 anycast 또는 multicast 폴더를 선택합니다.

  4. 필요한 경우 차트에 대해 다른 기준을 선택합니다.

    1. 주 창에서 편집 을 클릭합니다.
    2. 특성 목록에서 차트에 포함할 하나 이상의 특성을 선택합니다.On the Attributes list, select one or more attributes that you want to include in the chart. 여러 특성을 선택하려면 Ctrl 키를 누른 상태에서 각 특성을 선택합니다.
    3. 차트 보기 버튼을 클릭합니다. 차트는 선택한 특성에 따라 업데이트됩니다.

4.5.4.5. 큐 검색

큐 검색은 큐의 모든 메시지를 표시합니다. 목록을 필터링하고 정렬하여 특정 메시지를 찾을 수도 있습니다.

절차

  1. 왼쪽 메뉴에서 Artemis 를 클릭합니다.
  2. 폴더 트리에서 큐로 이동합니다.

    대기열은 바인딩된 주소 내에 있습니다.

  3. 기본 창의 탐색 모음에서 추가찾아보기를 클릭합니다.

    큐의 메시지가 표시됩니다. 기본적으로 처음 200개의 메시지가 표시됩니다.

    그림 4.10. 대기열 검색 페이지

    대기열 검색 페이지
  4. 특정 메시지 또는 메시지 그룹을 찾으려면 다음 중 하나를 수행하십시오.

    to…​이 작업을 수행합니다.

    메시지 목록 필터링

    Filter…​ 텍스트 필드에 필터 기준을 입력합니다. 검색(즉, 돋보기) 아이콘을 클릭합니다.

    메시지 목록 정렬

    메시지 목록에서 열 헤더를 클릭합니다. 메시지를 순서대로 정렬하려면 헤더를 두 번째로 클릭합니다.

  5. 메시지 내용을 보려면 표시 버튼을 클릭합니다.

    메시지 헤더, 속성 및 본문을 볼 수 있습니다.

4.5.4.6. 큐로 메시지 전송

큐를 생성한 후 메시지를 보낼 수 있습니다. 다음 절차에서는 기존 큐로 메시지를 보내는 데 필요한 단계를 간략하게 설명합니다.

절차

  1. 왼쪽 메뉴에서 Artemis 를 클릭합니다.
  2. 폴더 트리에서 큐로 이동합니다.
  3. 기본 창에서 메시지 보내기 탭을 클릭합니다.

    메시지를 작성할 페이지가 표시됩니다.

    그림 4.11. 큐의 메시지 페이지 전송

    큐로 메시지 전송
  4. 필요한 경우 헤더 추가 버튼을 클릭하여 메시지 헤더 정보를 추가합니다.
  5. 메시지 본문을 입력합니다.
  6. 형식 드롭다운 메뉴에서 메시지 본문 형식에 대한 옵션을 선택한 다음 형식을 클릭합니다. 메시지 본문은 사용자가 선택한 형식에 대해 사람이 읽을 수 있는 스타일로 포맷됩니다.
  7. 메시지 보내기 를 클릭합니다. 메시지가 전송됩니다.
  8. 추가 메시지를 보내려면 입력한 정보를 변경하고 메시지 보내기 를 클릭합니다.

4.5.4.7. 큐로 메시지 다시 보내기

이전에 보낸 메시지를 다시 보낼 수 있습니다.

절차

  1. 복원하려는 메시지를 찾습니다.
  2. 복원할 메시지 옆에 있는 확인란을 클릭합니다.
  3. Resend 버튼을 클릭합니다. 메시지가 표시됩니다.
  4. 필요에 따라 메시지 헤더와 본문을 업데이트한 다음 메시지 보내기 를 클릭합니다.

4.5.4.8. 다른 큐로 메시지 이동

큐의 메시지를 하나 이상 다른 큐로 이동할 수 있습니다.

절차

  1. 이동하려는 메시지를 찾습니다.
  2. 이동할 각 메시지 옆에 있는 확인란을 클릭합니다.
  3. 탐색 모음에서 메시지 이동을 클릭합니다.

    확인 대화 상자가 나타납니다.

  4. 드롭다운 메뉴에서 메시지를 이동할 대기열의 이름을 선택합니다. Move 를 클릭합니다.

4.5.4.9. 메시지 또는 큐 삭제

큐를 삭제하거나 큐에서 모든 메시지를 제거할 수 있습니다.

절차

  1. 삭제하거나 제거하려는 큐를 찾습니다.
  2. 다음 중 하나를 수행합니다.

    to…​이 작업을 수행합니다.

    큐에서 메시지 삭제

    1. 삭제할 각 메시지 옆에 있는 확인란을 클릭합니다.
    2. 삭제 버튼을 클릭합니다.

    큐에서 모든 메시지 삭제

    1. 기본 창의 탐색 모음에서 대기열 삭제 를 클릭합니다.
    2. Purge Queue 버튼을 클릭합니다.

    큐 삭제

    1. 기본 창의 탐색 모음에서 대기열 삭제 를 클릭합니다.
    2. 큐 삭제 버튼을 클릭합니다.

5장. 브로커 런타임 메트릭 모니터링

AMQ Broker를 설치할 때 Prometheus 지표 플러그인이 설치에 포함됩니다. Prometheus는 확장 가능한 대규모 시스템을 모니터링하여 장기간에 걸쳐 과거 런타임 데이터를 저장하도록 구축된 소프트웨어입니다. 플러그인을 활성화하려면 브로커 구성을 수정해야 합니다. 활성화하면 플러그인은 브로커에 대한 런타임 지표를 수집하고 이를 Prometheus 형식으로 내보냅니다. 그런 다음 Prometheus를 사용하여 메트릭을 검토할 수 있습니다. Grafana와 같은 그래픽 도구를 사용하여 데이터의 고급 시각화를 구성할 수도 있습니다.

참고

Prometheus 지표 플러그인을 사용하면 Prometheus 형식으로 브로커 지표를 수집하고 내보낼 수 있습니다. 그러나 Red Hat 은 Prometheus 자체의 설치 또는 구성이나 Grafana와 같은 시각화 툴을 지원하지 않습니다. Prometheus 또는 Grafana 설치, 구성 또는 실행에 대한 지원이 필요한 경우 커뮤니티 지원 및 문서와 같은 리소스의 제품 웹 사이트를 참조하십시오.

Prometheus 플러그인에서 수집한 브로커 메트릭 외에도 브로커 구성을 수정하여 브로커의 호스트 JVM(Java Virtual Machine)과 관련된 표준 메트릭 세트를 캡처할 수 있습니다. 특히 Garbage Collection(GC), 메모리 및 스레드에 대한 JVM 메트릭을 캡처할 수 있습니다.

다음 섹션은 다음과 같습니다.

5.1. 메트릭 개요

브로커 인스턴스의 상태 및 성능을 모니터링하려면 AMQ Broker에 Prometheus 플러그인을 사용하여 브로커 런타임 메트릭을 모니터링하고 저장할 수 있습니다. AMQ Broker Prometheus 플러그인은 브로커 런타임 지표를 Prometheus 형식으로 내보내 Prometheus 자체를 사용하여 데이터에 대한 쿼리를 시각화하고 실행할 수 있습니다.

Grafana와 같은 그래픽 도구를 사용하여 Prometheus 플러그인에서 수집하는 메트릭에 대한 고급 시각화 및 대시보드를 구성할 수도 있습니다.

플러그인이 Prometheus 형식으로 내보내는 메트릭은 다음과 같습니다.

브로커 메트릭

artemis_address_memory_usage
메모리 내 메시지에 대해 이 브로커의 모든 주소에서 사용하는 바이트 수입니다.
artemis_address_memory_usage_percentage
이 브로커의 모든 주소가 global-max-size 매개변수의 백분율로 사용하는 메모리입니다.
artemis_connection_count
이 브로커에 연결된 고객 수입니다.
artemis_total_connection_count
이 브로커에 연결된 클라이언트의 수가 시작되었기 때문입니다.

주소 메트릭

artemis_routed_message_count
하나 이상의 큐 바인딩으로 라우팅되는 메시지 수입니다.
artemis_unrouted_message_count
큐 바인딩으로 라우팅 되지 않은 메시지 수입니다.

대기열 메트릭

artemis_consumer_count
지정된 큐의 메시지를 사용하는 클라이언트 수입니다.
artemis_delivering_durable_message_count
지정된 큐가 현재 소비자에게 전달되고 있는 불안정한 메시지 수입니다.
artemis_delivering_durable_persistent_size
지정된 큐가 현재 소비자에게 전달되고 있는 불완전한 메시지의 영구 크기입니다.
artemis_delivering_message_count
지정된 큐가 현재 소비자에게 전달되고 있는 메시지 수입니다.
artemis_delivering_persistent_size
지정된 큐가 현재 소비자에게 전달되고 있는 메시지의 영구 크기입니다.
artemis_durable_message_count
지정된 큐에 현재 없는 메시지 수입니다. 여기에는 scheduled, paged, in-delivery 메시지가 포함됩니다.
artemis_durable_persistent_size
현재 지정된 큐에 있는 미완성 메시지의 영구 크기입니다. 여기에는 scheduled, paged, in-delivery 메시지가 포함됩니다.
artemis_messages_acknowledged
대기열이 생성된 이후 지정된 큐에서 확인되는 메시지 수입니다.
artemis_messages_added
큐가 생성된 이후 지정된 큐에 추가된 메시지 수입니다.
artemis_message_count
지정된 큐에 현재 메시지 수입니다. 여기에는 scheduled, paged, in-delivery 메시지가 포함됩니다.
artemis_messages_killed
큐가 생성된 이후 지정된 큐에서 삭제된 메시지 수입니다. 메시지가 구성된 최대 전달 시도 수를 초과하면 브로커가 메시지를 종료합니다.
artemis_messages_expired
큐가 생성된 이후 지정된 큐에서 만료된 메시지 수입니다.
artemis_persistent_size
현재 지정된 큐에 있는 모든 메시지의 영구 크기(아니요 및 비내화 가능)입니다. 여기에는 scheduled, paged, in-delivery 메시지가 포함됩니다.
artemis_scheduled_durable_message_count
지정된 큐에서 미완성, 예약된 메시지 수입니다.
artemis_scheduled_durable_persistent_size
지정된 큐에 위치하고 예약된 메시지의 영구 크기입니다.
artemis_scheduled_message_count
지정된 큐에서 예약된 메시지 수입니다.
artemis_scheduled_persistent_size
지정된 큐에서 예약된 메시지의 영구 크기입니다.

위에 나열되지 않은 고급 브로커 메트릭의 경우 하위 수준 메트릭을 집계하여 이러한 메트릭을 계산할 수 있습니다. 예를 들어 총 메시지 수를 계산하려면 브로커 배포의 모든 대기열에서 artemis_message_count 지표를 집계할 수 있습니다.

AMQ Broker를 온프레미스 배포를 위해 브로커를 호스팅하는 Java 가상 머신(JVM)에 대한 메트릭도 Prometheus 형식으로 내보냅니다. 이는 OpenShift Container Platform의 AMQ Broker 배포에 적용되지 않습니다.

5.2. AMQ Broker에 대한 Prometheus 지표 플러그인 활성화

AMQ Broker를 설치할 때 Prometheus 지표 플러그인이 설치에 포함됩니다. 플러그인이 이미 사용하도록 구성되어 있지만 브로커 구성에서 플러그인을 활성화해야 합니다. 활성화하면 플러그인은 브로커에 대한 런타임 지표를 수집하고 이를 Prometheus 형식으로 내보냅니다.

다음 절차에서는 AMQ Broker에 대한 Prometheus 플러그인을 활성화하는 방법을 보여줍니다.

절차

  1. AMQ Broker 7.10 추출된 아카이브에서 Prometheus 지표 플러그인 .jar 파일을 브로커 인스턴스의 lib 디렉터리에 복사합니다.

    $ cp amq-broker-7.10.0/lib/artemis-prometheus-metrics-plugin-1.0.0.CR1-redhat-00010.jar <broker_instance_dir>/lib
  2. &lt ;broker_instance_dir&gt; /etc/broker.xml 구성 파일을 엽니다.
  3. 브로커 구성에서 Prometheus 플러그인을 활성화합니다. 아래와 같이 구성된 & lt; plugin > 하위 요소를 사용하여 <metrics > 요소를 추가합니다.

    <metrics>
        <plugin class-name="org.apache.activemq.artemis.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"/>
    </metrics>
  4. broker.xml 구성 파일을 저장합니다. 지표 플러그인은 Prometheus 형식으로 브로커 런타임 지표를 수집하기 시작합니다.

5.3. JVM 지표를 수집하도록 브로커 구성

다음 절차에서는 Garbage Collection(GC), 메모리 및 스레드에 대한 Java Virtual Machine(JVM) 지표를 수집하도록 브로커를 구성하는 방법을 보여줍니다.

사전 요구 사항

절차

  1. &lt ;broker_instance_dir&gt; /etc/broker.xml 구성 파일을 엽니다.
  2. Prometheus 지표 플러그인을 활성화할 때 구성에 추가한 <metrics> 요소에서 브로커가 Garbage Collection(GC), 메모리 및 스레드에 대한 JVM 메트릭을 수집할지 여부를 지정합니다. 예를 들면 다음과 같습니다.

    <metrics>
        <jvm-gc>true</jvm-gc>
        <jvm-memory>true</jvm-memory>
        <jvm-threads>true</jvm-threads>
        <plugin class-name="org.apache.activemq.artemis.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"/>
    </metrics>
    참고

    jvm-memory 매개변수를 구성에 명시적으로 추가하고 값을 지정하지 않으면 브로커는 기본값 true 를 사용합니다. 즉 브로커는 기본적으로 JVM 메모리 지표를 내보냅니다. jvm-gcjvm-threads 매개변수의 기본값은 false 입니다.

  3. broker.xml 구성 파일을 저장합니다. 브로커는 활성화된 JVM 메트릭을 수집하기 시작합니다. 이러한 지표는 Prometheus 형식으로도 내보내집니다.

5.4. 특정 주소에 대한 메트릭 컬렉션 비활성화

AMQ Broker(예: Prometheus 지표 플러그인)에 대한 메트릭 플러그인을 구성하면 기본적으로 메트릭 컬렉션이 활성화됩니다. 그러나 특정 주소 또는 주소 집합address-setting 구성 요소 내에서 메트릭 컬렉션을 명시적으로 비활성화할 수 있습니다.

다음 절차에서는 특정 주소 또는 주소 집합에 대한 메트릭 컬렉션을 비활성화하는 방법을 보여줍니다.

절차

  1. &lt ;broker_instance_dir&gt; /etc/broker.xml 구성 파일을 엽니다.
  2. 일치하는 주소 또는 주소 집합address-setting 요소에서 enable-metrics 매개변수를 추가하고 매개변수 값을 false 로 설정합니다. 예를 들어 다음 구성은 순서 라는 주소에 대한 메트릭 컬렉션을 비활성화합니다.

    <configuration>
      <core>
        ...
        <address-settings>
           <address-setting match="orders">
              ...
              <enable-metrics>false</enable-metrics>
              ...
           </address-setting>
        </address-settings>
        ...
      </core>
    </configuration>

5.5. Prometheus를 사용하여 브로커 런타임 데이터에 액세스

사전 요구 사항

  • Prometheus 플러그인에서 수집한 브로커 런타임 데이터를 쿼리하고 시각화하려면 Prometheus를 설치해야 합니다. 자세한 내용은 Prometheus 설명서에서 Prometheus 설치를 참조하십시오.

절차

  1. Prometheus 설치 디렉터리에서 prometheus.yml 구성 파일을 엽니다.
  2. 구성 파일의 static_configs 섹션에서 targets 요소를 localhost:8161 로 변경합니다. 이 위치는 브로커가 웹 서버를 실행하는 위치입니다. 기본적으로 /metrics 가 이 호스트 이름에 추가되어 브로커 웹 서버에 저장된 지표의 전체 경로를 형성합니다.
  3. Prometheus 플러그인에서 수집한 브로커 런타임 지표를 보려면 웹 브라우저에서 localhost:8161/metrics 를 엽니다.

    결과 웹 페이지에서 브로커에 구성된 대기열 및 주소를 기반으로 플러그인에서 수집한 지표의 현재 값을 확인할 수 있습니다. JVM에 실행 중인 브로커 인스턴스가 두 개 이상 있는 경우 각 브로커에 대한 메트릭이 표시됩니다.

  4. Prometheus 설치 디렉터리에서 Prometheus를 실행합니다.

    $ ./prometheus

    Prometheus가 시작되면 쉘 출력에 다음 행이 포함됩니다.

    component=web, msg=”Start listening for connections” address=0.0.0.0:9090

    이전 줄은 Prometheus가 포트 9090에서 HTTP 트래픽을 수신하고 있음을 나타냅니다.

  5. Prometheus 웹 콘솔에 액세스하려면 웹 브라우저에서 127.0.0.1:9090 을 엽니다.
  6. Prometheus 웹 콘솔에서 Expression 필드를 사용하여 브로커 데이터에 쿼리를 생성할 수 있습니다. 생성하는 쿼리는 Prometheus 쿼리 언어인 PromQL을 기반으로 합니다. 쿼리에 삽입할 수 있는 브로커 메트릭은 Insert 메트릭 드롭다운 목록에 있습니다.

    간단한 예로, 시간이 지남에 따라 DLQ 큐에서 메시지 수를 쿼리할 수 있습니다. 이 경우 메트릭 드롭다운 목록에서 artemis_message_count 를 선택합니다. DLQ 대기열 이름과 주소를 지정하여 쿼리를 완료합니다. 이 예제 쿼리는 다음과 같습니다.

    artemis_message_count{address=“DLQ”, queue=“DLQ”}

    고급 시각화의 경우 정규식을 사용하여 여러 메트릭을 오버레이하는 복잡한 쿼리(예:)를 생성할 수 있습니다. 또는 집계와 같은 여러 메트릭에서 수치적인 작업을 수행할 수 있습니다. Prometheus 쿼리 생성에 대한 자세한 내용은 Prometheus 문서의 Prometheus 쿼리를 참조하십시오.

6장. 관리 API 사용

AMQ Broker에는 브로커의 구성을 수정하고, 새 리소스(예: 주소 및 큐)를 생성하고, 이러한 리소스를 검사합니다(예: 현재 큐에 보관되는 메시지 수), 상호 작용(예: 큐에서 메시지를 제거하기 위해)할 수 있는 광범위한 관리 API가 있습니다.

또한 클라이언트는 관리 API를 사용하여 브로커를 관리하고 관리 알림을 구독할 수 있습니다.

6.1. 관리 API를 사용하여 AMQ 브로커를 관리하는 방법

브로커를 관리하기 위해 관리 API를 사용하는 방법에는 다음 두 가지가 있습니다.

  • Useing the standard way to manage Java applications (Java applications)를 사용하는 것이 Java Application을 관리하는 표준 방법입니다.
  • JMS APIECDHE-ECDHEmanagement 작업 사용은 JMS 메시지 및 AMQ JMS 클라이언트를 사용하여 브로커로 전송됩니다.

브로커를 관리하는 방법에는 두 가지가 있지만 각 API는 동일한 기능을 지원합니다. CloudEvent를 사용하여 리소스를 관리할 수 있는 경우 JMS 메시지 및 AMQ JMS 클라이언트를 사용하여 동일한 결과를 얻을 수도 있습니다.

이 옵션은 특정 요구 사항, 애플리케이션 설정 및 환경에 따라 다릅니다. 관리 작업을 호출하는 방식과 관계없이 관리 API는 동일합니다.

각 관리형 리소스에는 이러한 유형의 리소스에 대해 호출할 수 있는 항목을 설명하는 Java 인터페이스가 있습니다. 브로커는 org.apache.activemq.artemis.api.core.management 패키지에서 관리되는 리소스를 노출합니다. 관리 작업을 호출하는 방법은 CloudEvent 메시지 또는 JMS 메시지와 AMQ JMS 클라이언트가 사용되는지에 따라 달라집니다.

참고

일부 관리 작업에서는 작업의 영향을 받는 메시지를 선택하기 위해 filter 매개 변수가 필요합니다. null 또는 빈 문자열을 전달하면 모든 메시지에 관리 작업이 수행됩니다.

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&gt; /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> "를 구독하십시오.

추가 리소스

6.3. JMS API를 사용하여 AMQ Broker 관리

JMS(Java Message Service) API를 사용하면 메시지를 생성, 전송, 수신 및 읽을 수 있습니다. JMS 및 AMQ JMS 클라이언트를 사용하여 브로커를 관리할 수 있습니다.

6.3.1. JMS 메시지 및 AMQ JMS Client를 사용하여 브로커 관리 구성

JMS를 사용하여 브로커를 관리하려면 먼저 manage 권한을 사용하여 브로커 관리 주소를 구성해야 합니다.

절차

  1. &lt ;broker_instance_dir&gt; /etc/broker.xml 구성 파일을 엽니다.
  2. &lt ;management-address& gt; 요소를 추가하고 관리 주소를 지정합니다.

    기본적으로 관리 주소는 queue.activemq.management 입니다. 기본값을 사용하지 않는 경우에만 다른 주소를 지정해야 합니다.

    <management-address>my.management.address</management-address>
  3. manage 사용자 권한 유형을 사용하여 관리 주소를 제공합니다.

    이 권한 유형을 사용하면 관리 주소가 관리 메시지를 수신하고 처리할 수 있습니다.

    <security-setting-match="queue.activemq.management">
        <permission-type="manage" roles="admin"/>
    </security-setting>

6.3.2. JMS API 및 AMQ JMS 클라이언트를 사용하여 브로커 관리

JMS 메시지를 사용하여 관리 작업을 호출하려면 AMQ JMS 클라이언트가 특수 관리 대기열을 인스턴스화해야 합니다.

절차

  1. QueueRequestor 를 생성하여 관리 주소로 메시지를 보내고 응답을 수신합니다.
  2. 메시지 생성 .
  3. org.apache.activemq.artemis.api.jms.management.JMSManagementECDHEer 클래스를 사용하여 메시지를 관리 속성으로 채웁니다.
  4. QueueRequestor 를 사용하여 메시지를 보냅니다.
  5. org.apache.activemq.artemis.api.jms.management.JMSManagementECDHEer 클래스를 사용하여 관리 응답에서 작업 결과를 검색합니다.

예 6.2. 큐의 메시지 수 보기

이 예제에서는 JMS API를 사용하여 JMS 대기열 exampleQueue 에서 메시지 수를 확인하는 방법을 보여줍니다.

Queue managementQueue = ActiveMQJMSClient.createQueue("activemq.management");

QueueSession session = ...
QueueRequestor requestor = new QueueRequestor(session, managementQueue);
connection.start();
Message message = session.createMessage();
JMSManagementHelper.putAttribute(message, "queue.exampleQueue", "messageCount");
Message reply = requestor.request(message);
int count = (Integer)JMSManagementHelper.getResult(reply);
System.out.println("There are " + count + " messages in exampleQueue");

6.4. 관리 작업

AMQ Broker를 관리하기 위해 ScanSetting 또는 JMS 메시지를 사용하든 동일한 API 관리 작업을 사용할 수 있습니다. 관리 API를 사용하면 브로커, 주소 및 대기열을 관리할 수 있습니다.

6.4.1. 브로커 관리 작업

관리 API를 사용하여 브로커를 관리할 수 있습니다.

대기열 나열, 생성, 배포 및 제거

getQueueNames() 메서드를 사용하여 배포된 대기열 목록을 검색할 수 있습니다.

대기열을 만들거나 삭제할 수 있습니다. createQueue(), deployQueue(), or destroyQueue() on the ActiveMQServerControl ( ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" 또는 리소스 이름 서버).

deployQueue 가 아무 작업도 수행하지 않는 동안 큐가 이미 존재하는 경우 createQueue 가 실패합니다.

대기열 일시 정지 및 재시작
QueueControl 은 기본 큐를 일시 중지하고 다시 시작할 수 있습니다. 대기열이 일시 중지되면 메시지가 수신되지만 전달되지 않습니다. 다시 시작되면 대기 중인 메시지 전달이 시작됩니다.
원격 연결 나열 및 닫기

listRemoteAddresses() 를 사용하여 클라이언트의 원격 주소를 검색합니다. closeConnectionsForAddress() 메서드를 사용하여 원격 주소와 연결된 연결을 닫을 수도 있습니다.

또는 listConnectionIDs() 를 사용하여 연결 ID를 나열하고 listSessions() 를 사용하여 지정된 연결 ID에 대한 모든 세션을 나열합니다.

트랜잭션 관리

브로커가 충돌하는 경우 브로커가 재시작되면 일부 트랜잭션에 수동 개입이 필요할 수 있습니다. 다음 방법을 사용하여 발생한 문제를 해결하는 데 도움이 됩니다.

listPreparedTransactions() 메서드 목록을 사용하여 준비 상태에 있는 트랜잭션(Transaction이 불투명 Base64 Strings로 표시)을 나열합니다.

이기종 트랜잭션을 해결하기 위해 commitPreparedTransaction() 또는 rollbackPreparedTransaction() 를 사용하여 지정된 준비된 트랜잭션을 커밋하거나 롤백합니다.

listHeuristicCommittedTransactions()listHeuristicRolledBackTransactions 메서드를 사용하여 가상적으로 완료된 트랜잭션을 나열합니다.

메시지 카운터 활성화 및 재설정

enableMessageCounters() 또는 disableMessageCounters() 메서드를 사용하여 메시지 카운터를 활성화 및 비활성화합니다.

resetAllMessageCounters()resetAllMessageCounterHistories() 메서드를 사용하여 메시지 카운터를 재설정합니다.

브로커 구성 및 속성 검색
ActiveMQServerControl 은 모든 속성(예: 브로커의 버전을 검색하는 getVersion() 메서드)을 통해 브로커의 구성을 노출합니다.
Core Bridge 및 diverts 나열, 생성 및 제거

getBridgeNames()getDivertNames() 메서드를 각각 사용하여 배포된 Core Bridge 및 diverts를 나열합니다.

createBridge()destroyBridge() 또는 createDivert() 및 destroyDivert() 및 destroyDivert() 를 사용하여 브리지 및 diverts를 생성하거나 삭제합니다( ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" 또는 리소스 이름 서버).

브로커를 중지하고 현재 연결된 모든 클라이언트에서 장애 조치를 강제 수행

ActiveMQServerControl 에서 forcefailover() 를 사용합니다( ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" 또는 리소스 이름 서버)

참고

이 방법은 실제로 브로커를 중지하므로 오류가 발생할 수 있습니다. 정확한 오류는 메서드를 호출하는 데 사용한 관리 서비스에 따라 다릅니다.

6.4.2. 주소 관리 작업

관리 API를 사용하여 주소를 관리할 수 있습니다.

ObjectName org.apache.activemq.artemis:broker=" <broker-name> ", component=addresses,address=" <address-name> " 또는 리소스 이름 주소 . <address-name >과 함께 AddressControl 클래스를 사용하여주소를 관리합니다.

addRole() 또는 removeRole() 메서드를 사용하여 주소에 대한 역할 및 권한을 수정합니다. getRoles() 메서드를 사용하여 큐와 연결된 모든 역할을 나열할 수 있습니다.

6.4.3. 대기열 관리 작업

관리 API를 사용하여 대기열을 관리할 수 있습니다.

코어 관리 API는 큐를 처리합니다. QueueControl 클래스는 큐 관리 작업( ObjectName,org.apache.activemq.artemis:broker=" <broker-name> ",component=addresses,address=",subcomponent=address>, routing-type> ",queue=" <queue-name> " 또는 리소스 이름 큐를 사용하여)를 정의합니다.

대기열의 대부분의 관리 작업에서는 단일 메시지 ID(예: 단일 메시지를 제거하기 위해) 또는 필터(예: 지정된 속성을 사용하여 모든 메시지를 만료)를 사용합니다.

만료, 배달 못 한 편지 주소로 전송 및 이동 메시지

expireMessages() 메서드를 사용하여 큐에서 메시지를 만료합니다. 만료 주소가 정의되면 메시지가 이 주소로 전송되고, 그렇지 않으면 해당 주소가 삭제됩니다. broker.xml 구성 파일의 address-settings 요소에서 주소 또는 주소 집합 (및 해당 주소에 바인딩된 대기열)의 만료 주소를 정의할 수 있습니다. 예를 들어 기본 브로커 구성 이해의 "기본 메시지 주소 설정" 섹션을 참조하십시오.

sendMessagesToDeadLetterAddress() 메서드를 사용하여 dead letter 주소로 메시지를 보냅니다. 이 메서드는 dead letter 주소로 전송된 메시지의 수를 반환합니다. 배달 못 한 문자 주소가 정의되면 메시지가 이 주소로 전송되고, 그렇지 않으면 큐에서 제거되고 삭제됩니다. broker.xml 구성 파일의 address-settings 요소에서 주소 또는 주소 집합 (및 해당 주소에 바인딩된 대기열)에 대한 dead letter 주소를 정의할 수 있습니다. 예를 들어 기본 브로커 구성 이해의 "기본 메시지 주소 설정" 섹션을 참조하십시오.

moveMessages() 메서드를 사용하여 한 대기열에서 다른 큐로 메시지를 이동합니다.

메시지 나열 및 제거

listMessages() 메서드를 사용하여 대기열의 메시지를 나열합니다. 각 메시지에 대해 배열을 하나씩 반환합니다.

단일 메시지 ID 변형에 대한 부울 또는 필터 변형에 대해 제거된 메시지 수를 반환하는 removeMessages() 메서드를 사용하여 큐에서 메시지를 제거합니다. 이 방법은 필터 인수를 사용하여 필터링된 메시지만 제거합니다. 필터를 빈 문자열로 설정하면 모든 메시지가 제거됩니다.

메시지 수
getMessageCount() 메서드에서 큐의 메시지 수를 반환합니다. 또는 countMessages() 는 지정된 필터와 일치하는 대기열의 메시지 수를 반환합니다.
메시지 우선 순위 변경
단일 메시지 ID 변형에 대한 부울 또는 필터 변형에 대한 업데이트된 메시지 수를 반환하는 changeMessagesPriority() 메서드를 사용하여 메시지 우선 순위를 변경할 수 있습니다.
메시지 카운터
listMessageCounter()listMessageCounterHistory() 메서드를 사용하여 큐에 대한 메시지 카운터를 나열할 수 있습니다( 6.6절. “메시지 카운터 사용”참조). 메시지 카운터는 resetMessageCounter() 메서드를 사용하여 단일 큐에 대해 재설정할 수도 있습니다.
큐 속성 검색
QueueControl 은 해당 속성을 통해 대기열 설정을 노출합니다(예: getFilter() 를 사용하여 큐가 생성된 경우 큐의 필터를 검색하는 경우 isDurable() to know whether the queue is corrupted, and so on).
대기열 일시 정지 및 재시작
QueueControl 은 기본 큐를 일시 중지하고 다시 시작할 수 있습니다. 대기열이 일시 중지되면 메시지가 수신되지만 전달되지 않습니다. 다시 시작되면 대기 중인 메시지 전달이 시작됩니다.

6.4.4. 원격 리소스 관리 작업

관리 API를 사용하여 브로커의 원격 리소스(수용자, 회전자, 브리지 등)를 시작하고 중지하여 브로커를 완전히 중지하지 않고 일정 기간 동안 오프라인으로 전환할 수 있습니다.

수락자
start() 또는 를 사용하여 어셉터를 시작하거나 중지합니다. AcceptorControl 클래스의 stop() 메서드 ( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=acceptors,name=" <acceptor-name> " 또는 리소스 이름 acceptor. <address-name> ). acceptor 매개변수는 AcceptorControl 특성을 사용하여 검색할 수 있습니다. 수락자에 대한 자세한 내용은 네트워크 연결: 수락자 및 커넥터 를 참조하십시오.
diverts
divert Control 클래스에서 start() 또는 stop() 메서드를 사용하거나 ( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=diverts,name=" <divert-name> " 또는 리소스 이름이 divert. <divert-name> ). divert 매개 변수는 divert Control 특성을 사용하여 검색할 수 있습니다.
브리지
start() (resp)를 사용하여 브리지를 시작하거나 중지합니다. BridgeControl 클래스에서 stop()메서드 ( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=bridge,name=" <bridge-name> " 또는 리소스 이름 bridge. <bridge-name> ). Bridge 매개변수는 BridgeControl 특성을 사용하여 검색할 수 있습니다.
브로드캐스트 그룹
BroadcastGroupControl 클래스에서 start() 또는 stop() 메서드를 사용하여 브로드캐스트 그룹을 시작하거나 중지합니다. ( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=broadcast-group> " 또는 리소스이름 broadcastgroup . <broadcast-group-name> ). broadcast group 매개변수는 BroadcastGroupControl 특성을 사용하여 검색할 수 있습니다. 자세한 내용은 Broker 검색 방법을 참조하십시오.
검색 그룹
DiscoveryGroupControl 클래스에서 start() 또는 stop() 메서드를 사용하여 검색 그룹을 시작하거나 중지합니다. ( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=discovery-group,name=" <discovery-group-name> " 또는 리소스 이름 검색. <discovery-group-name> ). Discovery groups 매개변수는 DiscoveryGroupControl 특성을 사용하여 검색할 수 있습니다. 자세한 내용은 Broker 검색 방법을 참조하십시오.
클러스터 연결
ClusterConnectionControl 클래스에서 start() 또는 stop() 메서드를 사용하여 클러스터 연결을 시작하거나 중지합니다. ( ObjectName org.apache.activemq.artemis:broker=" <broker-name> ",component=cluster-connection,name=" <cluster-connection-name> " 또는 리소스 이름 clusterconnection. <cluster-connection-name> ). ClusterConnectionControl 특성을 사용하여 클러스터 연결 매개변수를 검색할 수 있습니다. 자세한 내용은 브로커 클러스터 생성을 참조하십시오.

6.5. 관리 알림

다음은 메시지에 있는 모든 종류의 알림뿐만 아니라 메시지에 있는 헤더 목록입니다. 모든 알림에는 _AMQ_NotifType (함께 표시됨) 및 _AMQ_NotifTimestamp 헤더가 있습니다. 타임 스탬프는 java.lang.System.currentTimeMillis() 호출의 형식화되지 않은 결과입니다.

알림 유형headers

BINDING_ADDED (0)

_AMQ_Binding_Type

_AMQ_Address

_AMQ_ClusterName

_AMQ_RoutingName

_AMQ_Binding_ID

_AMQ_Distance

_AMQ_FilterString

BINDING_REMOVED (1)

_AMQ_Address

_AMQ_ClusterName

_AMQ_RoutingName

_AMQ_Binding_ID

_AMQ_Distance

_AMQ_FilterString

CONSUMER_CREATED (2)

_AMQ_Address

_AMQ_ClusterName

_AMQ_RoutingName

_AMQ_Distance

_AMQ_ConsumerCount

_AMQ_User

_AMQ_RemoteAddress

_AMQ_SessionName

_AMQ_FilterString

CONSUMER_CLOSED (3)

_AMQ_Address

_AMQ_ClusterName

_AMQ_RoutingName

_AMQ_Distance

_AMQ_ConsumerCount

_AMQ_User

_AMQ_RemoteAddress

_AMQ_SessionName

_AMQ_FilterString

SECURITY_AUTHENTICATION_VIOLATION (6)

_AMQ_User

SECURITY_PERMISSION_VIOLATION (7)

_AMQ_Address

_AMQ_CheckType

_AMQ_User

DISCOVERY_GROUP_STARTED >-<

name

DISCOVERY_GROUP_STOPPED (9)

name

BROADCAST_GROUP_STARTED (10)

name

BROADCAST_GROUP_STOPPED (11)

name

BRIDGE_STARTED (12)

name

BRIDGE_STOPPED (13)

name

CLUSTER_CONNECTION_STARTED (14)

name

CLUSTER_CONNECTION_STOPPED (15)

name

ACCEPTOR_STARTED (16)

팩토리

id

ACCEPTOR_STOPPED (17)

팩토리

id

제안서 ( 18)

_JBM_ProposalGroupId

_JBM_ProposalValue

_AMQ_Binding_Type

_AMQ_Address

_AMQ_Distance

PROPOSAL_RESPONSE 192)

_JBM_ProposalGroupId

_JBM_ProposalValue

_JBM_ProposalAltValue

_AMQ_Binding_Type

_AMQ_Address

_AMQ_Distance

CONSUMER_SLOW (21)

_AMQ_Address

_AMQ_ConsumerCount

_AMQ_RemoteAddress

_AMQ_ConnectionName

_AMQ_ConsumerName

_AMQ_SessionName

6.6. 메시지 카운터 사용

메시지 카운터를 사용하여 시간 경과에 따른 큐에 대한 정보를 가져옵니다. 이렇게 하면 다른 것을 보기 어려운 추세를 식별하는 데 도움이 됩니다.

예를 들어 메시지 카운터를 사용하여 시간이 지남에 따라 특정 큐가 사용되는 방식을 확인할 수 있습니다. 관리 API를 사용하여 큐의 메시지 수를 정기적으로 쿼리할 수도 있지만 큐가 실제로 사용되는 방법은 표시되지 않습니다. 큐의 메시지 수는 클라이언트가 보내거나 받는 메시지가 없거나 큐로 전송된 메시지 수가 사용된 메시지 수와 같기 때문에 일정하게 유지될 수 있습니다. 두 경우 모두 큐의 메시지 수는 매우 다른 방식으로 사용 중인 경우에도 동일하게 유지됩니다.

6.6.1. 메시지 카운터의 유형

메시지 카운터는 브로커의 큐에 대한 추가 정보를 제공합니다.

count
브로커가 시작된 이후 큐에 추가된 총 메시지 수입니다.
countDelta
마지막 메시지 카운터 업데이트 이후 큐에 추가된 메시지 수입니다.
lastAckTimestamp
대기열의 메시지를 마지막으로 승인한 때의 타임 스탬프입니다.
lastAddTimestamp
메시지를 마지막으로 큐에 추가했을 때의 타임 스탬프입니다.
messageCount
큐의 현재 메시지 수입니다.
messageCountDelta
마지막 메시지 카운터 업데이트 이후 대기열에서 추가/제거된 총 메시지 수입니다. 예를 들어 messageCountDelta-10 인 경우 전체 10개의 메시지가 큐에서 삭제되었습니다.
udpateTimestamp
마지막 메시지 카운터 업데이트의 타임 스탬프입니다.
참고

메시지 카운터를 결합하여 다른 의미 있는 데이터도 확인할 수 있습니다. 예를 들어 마지막 업데이트 이후 대기열에서 메시지 수를 구체적으로 알고자 하는 경우 messageCountDeltacountDelta 에서 뺀 것입니다.

6.6.2. 메시지 카운터 활성화

메시지 카운터는 브로커의 메모리에 약간의 영향을 미칠 수 있으므로 기본적으로 비활성화되어 있습니다. 메시지 카운터를 사용하려면 먼저 메시지 카운터를 활성화해야 합니다.

절차

  1. &lt ;broker_instance_dir&gt; /etc/broker.xml 구성 파일을 엽니다.
  2. 메시지 카운터를 활성화합니다.

    <message-counter-enabled>true</message-counter-enabled>
  3. 메시지 카운터 기록 및 샘플링 기간을 설정합니다.

    <message-counter-max-day-history>7</message-counter-max-day-history>
    <message-counter-sample-period>60000</message-counter-sample-period>
    message-counter-max-day-history
    브로커가 대기열 지표를 저장해야 하는 일 수입니다. 기본값은 10일입니다.
    message-counter-sample-period
    브로커는 메트릭을 수집하기 위해 큐를 샘플링하는 빈도(밀리초)입니다. 기본값은 10000밀리초입니다.

6.6.3. 메시지 카운터 검색

관리 API를 사용하여 메시지 카운터를 검색할 수 있습니다.

사전 요구 사항

절차

  • 관리 API를 사용하여 메시지 카운터를 검색합니다.

    // Retrieve a connection to the broker's MBeanServer.
    MBeanServerConnection mbsc = ...
    JMSQueueControlMBean queueControl = (JMSQueueControl)MBeanServerInvocationHandler.newProxyInstance(mbsc,
       on,
       JMSQueueControl.class,
       false);
    
    // Message counters are retrieved as a JSON string.
    String counters = queueControl.listMessageCounter();
    
    // Use the MessageCounterInfo helper class to manipulate message counters more easily.
    MessageCounterInfo messageCounter = MessageCounterInfo.fromJSON(counters);
    System.out.format("%s message(s) in the queue (since last sample: %s)\n",
    messageCounter.getMessageCount(),
    messageCounter.getMessageCountDelta());

추가 리소스

7장. 문제에 대한 모니터링 브로커

AMQ Broker에는 실행 중인 브로커를 교착 상태와 같은 문제를 적극적으로 모니터링하는 Critical Analyzer 라는 내부 툴이 포함되어 있습니다. 프로덕션 환경에서 교착 상태 조건과 같은 문제는 IO 오류, 디스크 결함, 메모리 부족 또는 기타 프로세스로 인한 초과 CPU 사용량으로 인해 발생할 수 있습니다.

Critical Analyzer는 대기열 전송(즉, 브로커의 큐에 메시지 추가) 및 저널 작업과 같은 중요한 작업에 대한 응답 시간을 주기적으로 측정합니다. 검사 작업의 응답 시간이 구성 가능한 시간 초과 값을 초과하면 브로커는 불안정한 것으로 간주됩니다. 이 경우 심각한 분석기를 구성하여 메시지를 간단히 기록하거나 브로커를 종료하거나 브로커를 실행하는 VM(가상 머신) 중지와 같은 브로커를 보호하기 위해 조치를 취할 수 있습니다.

7.1. Critical Analyzer 구성

다음 절차에서는 브로커를 모니터링하여 문제를 모니터링하도록 Critical Analyzer를 구성하는 방법을 설명합니다.

절차

  1. &lt ;broker_instance_dir&gt; /etc/broker.xml 구성 파일을 엽니다.

    Critical Analyzer의 기본 구성은 다음과 같습니다.

    <critical-analyzer>true</critical-analyzer>
    <critical-analyzer-timeout>120000</critical-analyzer-timeout>
    <critical-analyzer-check-period>60000</critical-analyzer-check-period>
    <critical-analyzer-policy>HALT</critical-analyzer-policy>
  2. 아래에 설명된 대로 매개변수 값을 지정합니다.

    critical-analyzer
    Critical Analyzer 툴을 활성화 또는 비활성화할지 여부를 지정합니다. 기본값은 true 입니다. 즉, 툴이 활성화되어 있습니다.
    critical-analyzer-timeout
    Critical Analyzer가 실행하는 검사에 대한 시간 초과(밀리초)입니다. 검사된 작업 중 하나가 이 값을 초과하는 시간이 이 값을 초과하면 브로커는 불안정한 것으로 간주됩니다.
    critical-analyzer-check-period
    각 작업에 대해 Critical Analyzer의 연속 검사 사이의 시간 기간(밀리초)입니다.
    critical-analyzer-policy
    브로커가 검사에 실패하고 불안정으로 간주되는 경우 이 매개변수는 브로커가 메시지 (LOG)를 로깅하는지, 브로커 (HALT) 호스팅되는 VM(가상 머신)을 중지하는지 또는 브로커를 종료합니다(SHUTDOWN).

    구성한 정책 옵션에 따라 중요 작업에 대한 응답 시간이 구성된 시간 초과 값을 초과하는 경우 다음 중 하나와 유사한 출력이 표시됩니다.

    critical-analyzer-policy=LOG

    [Artemis Critical Analyzer] 18:11:52,145 WARN [org.apache.activemq.artemis.core.server] AMQ224081: The component org.apache.activemq.artemis.tests.integration.critical.CriticalSimpleTest$2@5af97850 is not responsive

    critical-analyzer-policy=HALT

    [Artemis Critical Analyzer] 18:10:00,831 ERROR [org.apache.activemq.artemis.core.server] AMQ224079: The process for the virtual machine will be killed, as component org.apache.activemq.artemis.tests.integration.critical.CriticalSimpleTest$2@5af97850 is not responsive

    critical-analyzer-policy=SHUTDOWN

    [Artemis Critical Analyzer] 18:07:53,475 ERROR [org.apache.activemq.artemis.core.server] AMQ224080: The server process will now be stopped, as component org.apache.activemq.artemis.tests.integration.critical.CriticalSimpleTest$2@5af97850 is not responsive

    브로커에 다음과 같은 스레드 덤프도 표시됩니다.

    [Artemis Critical Analyzer] 18:10:00,836 WARN  [org.apache.activemq.artemis.core.server] AMQ222199: Thread dump: AMQ119001: Generating thread dump
    * =============================================================================== AMQ119002: Thread Thread[Thread-1 (ActiveMQ-scheduled-threads),5,main] name = Thread-1 (ActiveMQ-scheduled-threads) id = 19 group = java.lang.ThreadGroup[name=main,maxpri=10] sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088) java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745) =============================================================================== ..... .......... =============================================================================== AMQ119003: End Thread dump *

    2024-03-05에 최종 업데이트된 문서

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.