Sun Java 로고     이전      목차      색인      다음     

Sun 로고
Sun Java System Message Queue 3 2005Q4 관리 설명서 

10장
메시지 서버 모니터링

이 장에서는 메시지 서버를 모니터하는 데 사용 가능한 도구와 메트릭 데이터를 가져오는 방법에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

특정 메트릭에 대한 자세한 내용은 18장, "메트릭 참조"를 참조하십시오.


모니터링 도구 소개

Message Queue 정보에 대한 모니터링 인터페이스에는 로그 파일, 대화식 명령 및 메트릭을 얻을 수 있는 클라이언트 API가 있습니다. 각 인터페이스는 다음과 같은 장점과 단점이 있습니다.

표 10-1에서는 다른 도구들을 비교합니다.

표 10-1 메트릭 모니터링 도구의 장점 및 제한 

메트릭
모니터링 도구

장점

제한

imqcmd metrics

원격 모니터링

스팟 체킹에 적합

명령 옵션에 설정된 보고 간격을 실행 중에 변경 가능

원하는 특정 데이터를 선택하기 쉬움

보기 쉬운 테이블 형식으로 데이터 제시

하나의 명령으로 모든 데이터를 얻을 수 없음

데이터를 프로그래밍 방식으로 분석하기 어려움

기록 레코드를 작성하지 않음

기록 추세를 보기 어려움

로그 파일

정기적인 샘플링

기록 레코드 작성

브로커 등록 정보를 구성해야 하며 적용하려면 브로커를 종료하고 다시 시작해야 함

로컬 모니터링 전용

데이터 형식이 읽거나 구문 분석하기가 아주 어려우며 구문 분석 도구 없음

보고 간격을 실행 중에 변경할 수 없으며 모든 메트릭 데이터도 마찬가지임

데이터 선택에 융통성이 없음

브로커 메트릭 전용이며 대상 및 연결 서비스 메트릭은 포함되어 있지 않음

간격을 너무 짧게 설정하면 성능에 악영향을 줄 수 있음

클라이언트 API

원격 모니터링

원하는 특정 데이터를 선택하기 쉬움

데이터를 프로그램 방식으로 분석하고 모든 형식으로 표시할 수 있음

브로커 등록 정보를 구성해야 하며 적용하려면 브로커를 종료하고 다시 시작해야 함

사용자 고유의 메트릭 모니터링 클라이언트를 작성해야 함

보고 간격을 실행 중에 변경할 수 없으며 모든 메트릭 데이터도 마찬가지임

표에 나와 있는 차이점 이외에 각 도구는 브로커가 생성한 메트릭 정보 중 약간씩 다른 하위 집합을 수집합니다. 각 모니터링 도구가 수집하는 메트릭 데이터에 대한 자세한 내용은 18장, "메트릭 참조"를 참조하십시오.


브로커 로깅 구성 및 사용

Message Queue 로거는 브로커 코드, 디버거, 메트릭 생성기에서 생성한 정보를 가져와서 이 정보를 표준 출력(콘솔), 로그 파일, syslog 데몬 프로세스(Solaris� 운영 체제인 경우) 등과 같은 여러 출력 채널에 기록합니다.

로거에서 수집된 정보의 유형과 각 출력 채널에 기록된 유형을 지정할 수 있습니다. 특히 메트릭 정보가 로그 파일에 기록되도록 지정할 수 있습니다.

이 절에서는 브로커의 기본 로깅 구성에 대해 설명하며, 로그 정보를 대체 출력 채널로 리디렉션하는 방법, 로그 파일 롤오버 기준 변경 방법 및 메트릭 데이터를 로그 파일로 보내는 방법을 설명합니다.

기본 로깅 구성

브로커는 로그 출력을 로그 파일 집합에 저장하도록 자동으로 구성됩니다. 로그 파일은 연결된 브로커 인스턴스의 이름으로 식별되는 디렉토리에 있습니다(부록 A, "플랫폼별 Message Queue 데이터의 위치" 참조).

/instances/instanceName/log/

로그 파일은 단순 텍스트 파일입니다. 이름은 다음과 같으며 이 순서대로 지정됩니다.

log.txt
log_1.txt
log_2.txt
...
log_9.txt

기본적으로 로그 파일은 한 주에 한 번씩 롤오버되며, 시스템에서는 아홉 개의 백업 파일을 보존합니다.

브로커는 ERROR, WARNING, INFO 등 세 가지 로그 수준을 지원합니다. 각 수준은 표 10-2에 설명되어 있습니다.

표 10-2 로깅 수준 

수준

설명

ERROR

시스템 오류가 발생할 수 있는 문제에 대한 메시지

WARNING

주의해야 하지만 시스템 오류는 발생하지 않을 경고

INFO

메트릭 및 기타 정보 메시지 보고

로깅 수준을 설정하면 해당 수준 이상의 메시지를 수집합니다. 기본 로그 수준은 INFO이므로 ERROR, WARNING 및 INFO 메시지가 기본적으로 모두 기록됩니다.

로그 메시지 형식

기록된 메시지는 타임스탬프, 메시지 코드, 메시지 자체로 이루어집니다. 정보의 양은 설정한 로그 수준에 따라 달라집니다. 다음은 INFO 메시지의 예입니다.

[13/Sep/2000:16:13:36 PDT] B1004 Starting the broker service using tcp [ 25374,100] with min threads 50 and max threads of 500

타임스탬프 표준 시간대를 변경하려면 표 14-8에 설명되어 있는 imq.log.timezone 등록 정보에 대한 정보를 참조하십시오.

로거 구성 변경

로거 관련 등록 정보에 대한 설명은 표 14-8에 나와 있습니다.

▶ 브로커의 로거 구성을 변경하는 방법
  1. 로그 수준을 설정합니다.
  2. 로깅 범주 하나 이상에 해당하는 출력 채널(파일, 콘솔 또는 둘 다)을 설정합니다.
  3. 출력을 파일에 기록하는 경우에는 파일의 롤오버 기준을 구성합니다.

이 단계들은 로거 등록 정보를 설정하여 완료합니다. 이 작업은 두 방법 중 한 가지를 사용하여 수행할 수 있습니다.

명령줄에 전달되는 옵션은 브로커 인스턴스 구성 파일에서 지정한 등록 정보를 대체합니다. 표 10-3에는 로깅에 영향을 주는 imqbrokerd 옵션이 나와 있습니다.

표 10-3 imqbrokerd 로거 옵션 및 해당 등록 정보 

imqbrokerd 옵션

설명

-metrics interval

메트릭 정보가 로거에 기록되는 간격(초)을 지정합니다.

-loglevel level

로그 수준을 ERROR, WARNING, INFO 중 하나로 설정합니다.

-silent

콘솔에 대한 로깅을 끕니다.

-tty

모든 메시지를 콘솔로 보냅니다. 기본적으로 WARNING 및 ERROR 수준 메시지만 표시됩니다.

다음 절에서는 기본 구성을 변경하여 다음을 수행하는 방법을 설명합니다.

출력 채널 변경

기본적으로 오류 및 경고 메시지는 로그 파일에 기록될 뿐 아니라 터미널에도 표시됩니다. Solaris의 경우에는 오류 메시지가 시스템의 syslog 데몬에도 기록됩니다.

로그 메시지의 출력 채널은 다음과 같은 방법으로 변경할 수 있습니다.

로그 파일 롤오버 기준 변경

로그 파일의 롤오버 기준에는 시간과 크기의 두 가지가 있습니다. 기본값은 시간 기준을 사용하고 7일마다 파일을 롤오버하는 것입니다.

시간 및 크기 관련 롤오버 등록 정보를 모두 설정한 경우에는 먼저 도달한 제한에 의해 롤오버가 발생합니다. 앞에서 설명했듯이 브로커는 아홉 개까지의 롤오버 파일을 보존합니다.

브로커가 실행되고 있을 때 로그 파일 롤오버 등록 정보를 설정 또는 변경할 수 있습니다. 이러한 등록 정보를 설정하려면 imqcmd update bkr 명령을 사용합니다.

로그 파일로 메트릭 데이터 보내기

이 절에서는 브로커 로그 파일을 사용하여 메트릭 정보를 보고하는 절차를 설명합니다. 로거 구성에 대한 자세한 내용은 브로커 로깅 구성 및 사용을 참조하십시오.

▶ 로그 파일을 사용하여 메트릭 정보를 보고하는 방법
  1. 브로커의 메트릭 생성 기능을 구성합니다.
    1. imq.metrics.enabled=true인지 확인합니다.
    2. 로깅을 위한 메트릭 생성은 기본적으로 설정되어 있습니다.

    3. 메트릭 생성 간격을 원하는 시간(초)으로 설정합니다.
    4. imq.metrics.interval=interval

      이 값은 config.properties 파일에서 설정하거나 브로커를 시작할 때
      -metrics interval 명령줄 옵션을 사용하여 설정할 수 있습니다.

  2. 로거가 메트릭 정보를 수집하는지 확인합니다.
  3. imq.log.level=INFO

    이것이 기본값입니다. 이 값은 config.properties 파일에서 설정하거나 브로커를 시작할 때 -loglevel level 명령줄 옵션을 사용하여 설정할 수 있습니다.

  4. 로거가 메트릭 정보를 로그 파일에 기록하도록 설정되어 있는지 확인합니다.
  5. imq.log.file.output=INFO

    이것이 기본값입니다. 이 값은 config.properties 파일에서 설정할 수 있습니다.

  6. 브로커를 시작합니다.

다음은 로그 파일에 출력된 샘플 브로커 메트릭 출력입니다.

 

[21/Jul/2004:11:21:18 PDT]

Connections: 0    JVM Heap: 8323072 bytes (7226576 free) Threads: 0 (14-1010)

      In: 0 msgs (0bytes) 0 pkts (0 bytes)

     Out: 0 msgs (0bytes) 0 pkts (0 bytes)

 Rate In: 0 msgs/sec (0 bytes/sec) 0 pkts/sec (0 bytes/sec)

Rate Out: 0 msgs/sec (0 bytes/sec) 0 pkts/sec (0 bytes/sec)

 

메트릭 데이터에 대한 자세한 내용은 18장, "메트릭 참조"를 참조하십시오.

사용 불능 메시지 기록

브로커에 대한 사용 불능 메시지 로깅을 사용하여 물리적 대상을 모니터링할 수 있습니다. 사용 불능 메시지 대기열을 사용하는지 여부에 관계 없이 사용 불능 메시지를 기록할 수 있습니다.

사용 불능 메시지 로깅을 사용하는 경우 브로커는 다음과 같은 이벤트 유형을 기록합니다.

사용 불능 메시지 대기열을 사용하는 경우 다음과 같은 이벤트 유형도 로깅에 포함됩니다.

사용 불능 메시지 로깅은 기본적으로 비활성화됩니다. 사용 불능 메시지 로깅을 사용하려면 imq.destination.logDeadMsgs 브로커 속성을 설정합니다.


대화식 메트릭 표시

Message Queue 브로커는 다음과 같은 이벤트 유형을 보고할 수 있습니다.

imqcmd 명령은 브로커 전체, 개별 연결 서비스 및 개별 물리적 대상에 대한 메트릭 정보를 얻을 수 있습니다. 메트릭 데이터를 얻으려면 일반적으로 imqcmd의 metrics 하위 명령을 사용합니다. 메트릭 데이터는 지정한 간격이나 지정한 횟수에 콘솔 화면에 기록됩니다.

query 하위 명령을 사용하여 구성 정보를 포함하는 유사한 데이터를 볼 수도 있습니다. 자세한 내용은 imqcmd query를 참조하십시오.

imqcmd 메트릭

imqcmd metrics의 구문과 옵션은 각각 표 10-4와 표 10-5에 나타나 있습니다.

표 10-4 imqcmd metrics 하위 명령 구문

하위 명령 구문

제공되는 메트릭 데이터

metrics bkr
    [-b hostName:portNumber]
    [-m metricType]
    [-int interval]
    [-msp numSamples]

기본 브로커 또는 지정한 호스트 및 포트의 브로커 메트릭을 표시합니다.

또는

 

metrics svc -n serviceName
    [-b hostName:portNumber]
    [-m metricType]
    [-int interval]
    [-msp numSamples]

기본 브로커 또는 지정한 호스트 및 포트의 브로커에서 지정된 서비스의 메트릭을 표시합니다.

또는

 

metrics dst -t destType
    -n destName
    [-b hostName:portNumber]
    [-m metricType]
    [-int interval]
    [-msp numSamples]

지정한 유형과 이름의 물리적 대상에 대한 메트릭 정보를 표시합니다.

표 10-5 imqcmd metrics 하위 명령 옵션

하위 명령 옵션

설명

-b hostName:portNumber

메트릭 데이터를 보고하는 브로커의 호스트 이름과 포트를 지정합니다. 기본값은 localhost:7676입니다.

-int interval

메트릭을 표시할 간격(초)을 지정합니다. 기본값은 5초입니다.

-m metricType

표시할 메트릭의 유형을 지정합니다.

ttl 브로커, 서비스 또는 대상에 유입되고 유출되는 메시지와 패킷에 대한 메트릭을 표시합니다(기본 메트릭 유형).

rts 브로커, 연결 서비스 또는 대상에 유입 및 유출되는 메시지와 패킷의 메트릭을 초당 속도로 표시합니다.

cxn 연결, 가상 메모리 힙 및 스레드를 표시합니다(브로커 및 연결 서비스에만 해당).

con 사용자 관련 메트릭을 표시합니다(대상에만 해당).

dsk 디스크 사용 메트릭을 표시합니다(대상에만 해당).

-msp numSamples

출력에 표시되는 샘플 수를 지정합니다. 기본값은 무제한 수입니다(무한).

-n destName

메트릭 데이터가 보고되는 물리적 대상(있는 경우)의 이름을 지정합니다. 기본값이 없습니다.

-n serviceName

메트릭 데이터가 보고되는 연결 서비스(있는 경우)를 지정합니다. 기본값이 없습니다.

-t destType

메트릭 데이터가 보고되는 물리적 대상(있는 경우)의 유형(대기열 또는 주제)을 지정합니다. 기본값이 없습니다.

메트릭 하위 명령을 사용하여 메트릭 데이터 표시

이 절에서는 metrics 하위 명령을 사용하여 메트릭 정보를 보고하는 절차를 설명합니다.

▶ 메트릭 하위 명령을 사용하는 방법
  1. 메트릭 정보가 필요한 브로커를 시작합니다.
  2. 브로커 시작을 참조하십시오.

  3. 표 10-4와 표 10-5에 표시된 대로 적절한 imqcmd metrics 하위 명령과 옵션을 실행합니다.

메트릭 출력: imqcmd metrics

이 절에서는 imqcmd metrics 하위 명령의 출력 예를 보여줍니다. 예로는 브로커 전체, 연결 서비스 및 물리적 대상 메트릭이 나와 있습니다.

브로커 전체 메트릭

메시지와 패킷이 브로커에 유입 및 유출되는 속도를 10초 간격으로 구하려면 다음과 같이 metrics bkr 하위 명령을 사용합니다.

imqcmd metrics bkr -m rts -int 10 -u admin

이 명령은 다음과 유사한 출력을 생성합니다(표 18-2의 데이터 설명 참조).

 

--------------------------------------------------------

Msgs/sec   Msg Bytes/sec   Pkts/sec    Pkt Bytes/sec   

In   Out     In      Out     In   Out     In      Out  

--------------------------------------------------------

0     0      27      56      0     0      38      66   

10    0     7365     56      10    10    7457    1132  

0     0      27      56      0     0      38      73   

0     10     27     7402     10    20    1400    8459  

0     0      27      56      0     0      38      73   

 

연결 서비스 메트릭

jms 연결 서비스가 처리한 메시지와 패킷의 누적 총 수를 구하려면 다음과 같이 metrics svc 하위 명령을 사용합니다.

imqcmd metrics svc -n jms -m ttl -u admin

이 명령은 다음과 유사한 출력을 생성합니다(표 18-3의 데이터 설명 참조).

 

-------------------------------------------------

  Msgs      Msg Bytes      Pkts      Pkt Bytes     

In   Out    In     Out   In   Out    In     Out  

-------------------------------------------------

164  100  120704  73600  282  383  135967  102127

657  100  483552  73600  775  876  498815  149948

 

물리적 대상 메트릭

물리적 대상에 대한 메트릭 정보를 얻으려면 다음과 같이 metrics dst 하위 명령을 사용하십시오.

imqcmd metrics dst -t q -n XQueue -m ttl -u admin

이 명령은 다음과 유사한 출력을 생성합니다(표 18-4의 데이터 설명 참조).

 

-----------------------------------------------------------------------------

  Msgs      Msg Bytes         Msg Count         Total Msg Bytes (k)     Largest

In   Out    In     Out    Current  Peak  Avg  Current  Peak     Avg    Msg (k)

-----------------------------------------------------------------------------

200  200  147200  147200     0     200    0      0      143      71        0  

300  200  220800  147200    100    200   10     71      143      64        0  

300  300  220800  220800     0     200    0      0      143      59        0  

 

물리적 대상의 사용자에 대한 정보를 얻으려면 다음과 같이 metrics dst 하위 명령을 사용합니다.

imqcmd metrics dst -t q -n SimpleQueue -m con -u admin

이 명령은 다음과 유사한 출력을 생성합니다(표 18-4의 데이터 설명 참조).

 

------------------------------------------------------------------

  Active Consumers        Backup Consumers         Msg Count

Current  Peak  Avg      Current  Peak    Avg    Current  Peak  Avg

------------------------------------------------------------------

   1       1      0        0       0      0       944    1000  525

 

imqcmd query

imqcmd query의 구문과 옵션은 이 명령이 제공하는 메트릭 데이터에 대한 설명과 함께 표 10-6에 나와 있습니다.

표 10-6 imqcmd query 하위 명령 구문

하위 명령 구문

제공되는 메트릭 데이터

query bkr
    [-b hostName:portNumber]

브로커 메모리와 영구 저장소에 저장되어 있는 현재의 메시지 수와 메시지 바이트에 대한 정보(브로커 정보 표시 참조)

또는

 

query svc -n serviceName
    [-b hostName:portNumber]

지정한 연결 서비스에 대한 현재의 할당된 스레드 수와 연결 수에 대한 정보(연결 서비스 정보 표시 참조)

또는

 

query dst -t destType
    -n destName
    [-b hostName:portNumber]

지정한 대상의 메모리와 영구 저장소에 저장되어 있는 생성자, 활성 및 백업 사용자, 메시지 및 메시지 바이트의 현재 수에 대한 정보(물리적 대상 정보 표시 참조)


주

imqcmd query에서 제공하는 메트릭 데이터는 제한되어 있기 때문에 이 도구는 18장, "메트릭 참조"에 제시된 표에 설명되어 있지 않습니다.



브로커를 모니터하는 응용 프로그램 작성

Message Queue는 브로커가 메트릭 데이터를 JMS 메시지에 기록한 다음 메시지에 포함된 메트릭 정보 유형에 따라 여러 메트릭 주제 대상 중 하나에 보낼 수 있는 메트릭 모니터링 기능을 제공합니다.

메트릭 주제 대상에 가입하고 이러한 대상에서 메시지를 사용하며 메시지에 포함된 메트릭 정보를 처리하는 클라이언트 응용 프로그램을 작성하여 이러한 메트릭 정보에 액세스할 수 있습니다.

다섯 개의 메트릭 주제 대상이 있으며 표 10-7에 그 이름과 함께 각 대상에 전달되는 메트릭 메시지 유형이 표시되어 있습니다.

표 10-7 메트릭 주제 대상

주제 이름

메트릭 메시지 유형

mq.metrics.broker

브로커 메트릭

mq.metrics.jvm

Java 가상 머신 메트릭

mq.metrics.destination_list

대상 및 해당 유형 목록

mq.metrics.destination.queue.
monitoredDestinationName

지정된 이름의 대기열에 대한 대상 메트릭

mq.metrics.destination.topic.
monitoredDestinationName

지정된 이름의 주제에 대한 대상 메트릭

메시지 기반 모니터링 설정

이 절에서는 메시지 기반 모니터링 기능을 사용하여 메트릭 정보를 수집하는 절차를 설명합니다. 이 절차는 클라이언트 개발과 관리 작업을 모두 포함합니다.

▶ 메시지 기반 모니터링을 설정하는 방법
  1. 메트릭 모니터링 클라이언트를 작성합니다.
  2. 메트릭 주제 대상에 가입하고 메트릭 메시지를 사용하며 이러한 메시지에서 메트릭 데이터를 추출하는 클라이언트를 프로그래밍하는 데 대한 지침은 Java 클라이언트용 Message Queue 개발 안내서를 참조하십시오.

  3. config.properties 파일에서 브로커 등록 정보 값을 설정하여 브로커의 메트릭 메시지 생성자를 구성합니다.
    1. 메트릭 메시지 생성을 활성화합니다.
    2. imq.metrics.topic.enabled=true를 설정합니다.

      기본값은 true입니다.

    3. 메트릭 메시지가 생성되는 간격(초)을 설정합니다.
    4. imq.metrics.topic.interval=interval을 설정합니다.

      기본값은 60초입니다.

    5. 메트릭 메시지가 지속되는지(즉, 브로커에 오류가 발생해도 메시지가 보존되는지) 여부를 지정합니다.
    6. imq.metrics.topic.persist를 설정합니다.

      기본값은 false입니다.

    7. 메트릭 메시지가 삭제되기 전까지 해당 대상에 남아 있는 기간을 지정합니다.
    8. imq.metrics.topic.timetolive를 설정합니다.

      기본값은 300초입니다.

  4. 메트릭 주제 대상에 대한 액세스 제어가 필요한 경우 설정합니다.
  5. 아래의 보안 및 액세스 고려 사항에 있는 설명을 참조하십시오.

  6. 메트릭 모니터링 클라이언트를 시작합니다.
  7. 사용자가 메트릭 주제에 가입하면 메트릭 주제 대상이 자동으로 만들어집니다. 메트릭 주제가 만들어지면 브로커 메트릭 메시지 생성자가 메트릭 메시지를 메트릭 주제로 보내기 시작합니다.

보안 및 액세스 고려 사항

메트릭 주제 대상에 대한 액세스를 제한하는 이유는 두 가지입니다.

이러한 사항을 고려할 때 메트릭 주제 대상에 대한 액세스를 제한하는 것이 좋습니다.

모니터링 클라이언트는 다른 클라이언트와 같은 인증 및 권한 부여 제어를 받습니다. Message Queue 사용자 저장소에서 유지 관리되는 사용자만 브로커에 연결할 수 있습니다.

사용자 권한 부여: 액세스 제어 등록 정보 파일에 설명되어 있는 액세스 제어 등록 정보 파일을 통해 특정 메트릭 주제 대상에 대한 액세스를 제한하여 추가 보호를 제공할 수 있습니다.

예를 들어 accesscontrol.properties 파일의 다음 항목은 user1과 user2를 제외한 모든 사람에 대해 mq.metrics.broker 메트릭 주제에 대한 액세스를 거부합니다.

topic.mq.metrics.broker.consume.deny.user=*

topic.mq.metrics.broker.consume.allow.user=user1,user2

다음 항목은 사용자 user3만 주제 t1을 모니터링할 수 있도록 합니다.

topic.mq.metrics.destination.topic.t1.consume.deny.user=*

topic.mq.metrics.destination.topic.t1.consume.allow.user=user3

메트릭 데이터의 중요도에 따라 암호화된 연결을 사용하여 메트릭 모니터링 클라이언트를 브로커에 연결할 수도 있습니다. 암호화된 연결 사용에 대한 자세한 내용은 SSL 기반 서비스 작업을 참조하십시오.

메트릭 출력: 메트릭 메시지

메시지 기반 모니터링 API를 사용하여 얻는 메트릭 데이터 출력은 사용자가 어떤 메트릭 모니터링 클라이언트를 작성하는지에 따라 다릅니다. 단지 브로커의 메트릭 생성기에서 어떤 데이터를 제공하는지에 따라 제한을 받습니다. 이 데이터의 전체 목록을 보려면 메트릭 참조를 참조하십시오.



이전      목차      색인      다음     


부품 번호: 819-3563.   Copyright 2005 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다.