| |
| Sun Java System Message Queue 3 2005Q4 관리 설명서 | |
10장
메시지 서버 모니터링이 장에서는 메시지 서버를 모니터하는 데 사용 가능한 도구와 메트릭 데이터를 가져오는 방법에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
특정 메트릭에 대한 자세한 내용은 18장, "메트릭 참조"를 참조하십시오.
모니터링 도구 소개Message Queue 정보에 대한 모니터링 인터페이스에는 로그 파일, 대화식 명령 및 메트릭을 얻을 수 있는 클라이언트 API가 있습니다. 각 인터페이스는 다음과 같은 장점과 단점이 있습니다.
표 10-1에서는 다른 도구들을 비교합니다.
표에 나와 있는 차이점 이외에 각 도구는 브로커가 생성한 메트릭 정보 중 약간씩 다른 하위 집합을 수집합니다. 각 모니터링 도구가 수집하는 메트릭 데이터에 대한 자세한 내용은 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에 나와 있습니다.
▶ 브로커의 로거 구성을 변경하는 방법
이 단계들은 로거 등록 정보를 설정하여 완료합니다. 이 작업은 두 방법 중 한 가지를 사용하여 수행할 수 있습니다.
명령줄에 전달되는 옵션은 브로커 인스턴스 구성 파일에서 지정한 등록 정보를 대체합니다. 표 10-3에는 로깅에 영향을 주는 imqbrokerd 옵션이 나와 있습니다.
다음 절에서는 기본 구성을 변경하여 다음을 수행하는 방법을 설명합니다.
출력 채널 변경
기본적으로 오류 및 경고 메시지는 로그 파일에 기록될 뿐 아니라 터미널에도 표시됩니다. Solaris의 경우에는 오류 메시지가 시스템의 syslog 데몬에도 기록됩니다.
로그 메시지의 출력 채널은 다음과 같은 방법으로 변경할 수 있습니다.
- 모든 로그 범주(주어진 수준에서)의 출력이 화면에 표시되게 하려면 imqbrokerd 명령에 -tty 옵션을 사용합니다.
- 로그 출력이 화면에 표시되지 않게 하려면 imqbrokerd 명령에 -silent 옵션을 사용합니다.
- 로그 파일에 기록할 로깅 정보의 범주를 지정하려면 imq.log.file.output 등록 정보를 사용합니다. 예를 들면 다음과 같습니다.
imq.log.file.output=ERROR
- 콘솔에 기록할 로깅 정보의 범주를 지정하려면 imq.log.console.output 등록 정보를 사용합니다. 예를 들면 다음과 같습니다.
imq.log.console.output=INFO
- Solaris의 경우 Solaris syslog에 기록할 로깅 정보의 범주를 지정하려면 imq.log.syslog.output 등록 정보를 사용합니다. 예를 들면 다음과 같습니다.
imq.log.syslog.output=NONE
로그 파일 롤오버 기준 변경
로그 파일의 롤오버 기준에는 시간과 크기의 두 가지가 있습니다. 기본값은 시간 기준을 사용하고 7일마다 파일을 롤오버하는 것입니다.
시간 및 크기 관련 롤오버 등록 정보를 모두 설정한 경우에는 먼저 도달한 제한에 의해 롤오버가 발생합니다. 앞에서 설명했듯이 브로커는 아홉 개까지의 롤오버 파일을 보존합니다.
브로커가 실행되고 있을 때 로그 파일 롤오버 등록 정보를 설정 또는 변경할 수 있습니다. 이러한 등록 정보를 설정하려면 imqcmd update bkr 명령을 사용합니다.
로그 파일로 메트릭 데이터 보내기
이 절에서는 브로커 로그 파일을 사용하여 메트릭 정보를 보고하는 절차를 설명합니다. 로거 구성에 대한 자세한 내용은 브로커 로깅 구성 및 사용을 참조하십시오.
▶ 로그 파일을 사용하여 메트릭 정보를 보고하는 방법
다음은 로그 파일에 출력된 샘플 브로커 메트릭 출력입니다.
메트릭 데이터에 대한 자세한 내용은 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 하위 명령을 사용하여 메트릭 정보를 보고하는 절차를 설명합니다.
▶ 메트릭 하위 명령을 사용하는 방법
메트릭 출력: 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지정된 이름의 주제에 대한 대상 메트릭
메시지 기반 모니터링 설정
이 절에서는 메시지 기반 모니터링 기능을 사용하여 메트릭 정보를 수집하는 절차를 설명합니다. 이 절차는 클라이언트 개발과 관리 작업을 모두 포함합니다.
▶ 메시지 기반 모니터링을 설정하는 방법
- 메트릭 모니터링 클라이언트를 작성합니다.
메트릭 주제 대상에 가입하고 메트릭 메시지를 사용하며 이러한 메시지에서 메트릭 데이터를 추출하는 클라이언트를 프로그래밍하는 데 대한 지침은 Java 클라이언트용 Message Queue 개발 안내서를 참조하십시오.
- config.properties 파일에서 브로커 등록 정보 값을 설정하여 브로커의 메트릭 메시지 생성자를 구성합니다.
- 메트릭 메시지 생성을 활성화합니다.
imq.metrics.topic.enabled=true를 설정합니다.
기본값은 true입니다.
- 메트릭 메시지가 생성되는 간격(초)을 설정합니다.
imq.metrics.topic.interval=interval을 설정합니다.
기본값은 60초입니다.
- 메트릭 메시지가 지속되는지(즉, 브로커에 오류가 발생해도 메시지가 보존되는지) 여부를 지정합니다.
imq.metrics.topic.persist를 설정합니다.
기본값은 false입니다.
- 메트릭 메시지가 삭제되기 전까지 해당 대상에 남아 있는 기간을 지정합니다.
imq.metrics.topic.timetolive를 설정합니다.
기본값은 300초입니다.
- 메트릭 주제 대상에 대한 액세스 제어가 필요한 경우 설정합니다.
아래의 보안 및 액세스 고려 사항에 있는 설명을 참조하십시오.
- 메트릭 모니터링 클라이언트를 시작합니다.
사용자가 메트릭 주제에 가입하면 메트릭 주제 대상이 자동으로 만들어집니다. 메트릭 주제가 만들어지면 브로커 메트릭 메시지 생성자가 메트릭 메시지를 메트릭 주제로 보내기 시작합니다.
보안 및 액세스 고려 사항
메트릭 주제 대상에 대한 액세스를 제한하는 이유는 두 가지입니다.
이러한 사항을 고려할 때 메트릭 주제 대상에 대한 액세스를 제한하는 것이 좋습니다.
모니터링 클라이언트는 다른 클라이언트와 같은 인증 및 권한 부여 제어를 받습니다. Message Queue 사용자 저장소에서 유지 관리되는 사용자만 브로커에 연결할 수 있습니다.
사용자 권한 부여: 액세스 제어 등록 정보 파일에 설명되어 있는 액세스 제어 등록 정보 파일을 통해 특정 메트릭 주제 대상에 대한 액세스를 제한하여 추가 보호를 제공할 수 있습니다.
예를 들어 accesscontrol.properties 파일의 다음 항목은 user1과 user2를 제외한 모든 사람에 대해 mq.metrics.broker 메트릭 주제에 대한 액세스를 거부합니다.
다음 항목은 사용자 user3만 주제 t1을 모니터링할 수 있도록 합니다.
topic.mq.metrics.destination.topic.t1.consume.deny.user=*
topic.mq.metrics.destination.topic.t1.consume.allow.user=user3
메트릭 데이터의 중요도에 따라 암호화된 연결을 사용하여 메트릭 모니터링 클라이언트를 브로커에 연결할 수도 있습니다. 암호화된 연결 사용에 대한 자세한 내용은 SSL 기반 서비스 작업을 참조하십시오.
메트릭 출력: 메트릭 메시지
메시지 기반 모니터링 API를 사용하여 얻는 메트릭 데이터 출력은 사용자가 어떤 메트릭 모니터링 클라이언트를 작성하는지에 따라 다릅니다. 단지 브로커의 메트릭 생성기에서 어떤 데이터를 제공하는지에 따라 제한을 받습니다. 이 데이터의 전체 목록을 보려면 메트릭 참조를 참조하십시오.