Sun Java System Messaging Server 6.3 관리 설명서

A.3 Solaris 10 OS에 대한 SNMP 지원 구성

기본적으로 SNMP 모니터링은 Messaging Server에서 비활성화됩니다. 기본 Messaging Server 구성에서 제공되는 서비스 수를 최소화하려면 이 기본값을 선택합니다. 이 기본값을 SNMP 모니터링을 사용하여 성능 감소가 발생한다는 의미로 해석하지 마십시오. 실제로 Messaging Server의 SNMP 지원은 매우 적은 자원을 사용하며 메시징 서버에 가장 적은 영향을 줍니다. 결론적으로 Messaging Server의 SNMP 지원을 사용하려면 구성 단계를 한 번 수행해야 합니다. 또한 Messaging Server와 같은 하위 에이전트를 실행하려면 플랫폼 Net-SNMP 마스터 에이전트 snmpd의 기본 구성을 변경해야 합니다. 이러한 변경에 대해서는 다음 절에서 설명합니다.

A.3.1 Net-SNMP 구성

Messaging Server의 Net-SNMP 기반 SNMP 하위 에이전트는 AgentX 프로토콜을 사용하여 플랫폼의 SNMP 마스터 에이전트(RFC 2741)와 통신합니다. AgentX 프로토콜을 사용하도록 Net-SNMP 마스터 에이전트 snmpd를 구성해야 합니다. 그렇게 하려면 플랫폼의 snmpd.conf 파일에 다음과 같은 행이 있어야 합니다.


master agentx

이 행이 없으면 해당 행을 추가한 다음 snmpd 데몬을 다시 시작합니다. 데몬에 SIGHUP 신호를 보내는 것으로는 충분하지 않습니다. snmpd 데몬을 다시 시작한 후 snmpd가 AgentX 통신을 위해 만드는 UNIX 도메인 소켓을 찾습니다. Solaris 및 Linux 시스템에서 이 소켓은 기본적으로 /var/agentx/master라는 특수 파일로 표시됩니다. 해당 위치와 이름은 snmpd.con 파일을 통해 변경할 수 있습니다.

Solaris 10 OS snmpd 구성은 아래와 같이 표시됩니다.


%cp /etc/sma/snmp/snmpd.conf /etc/sma/snmp/snmpd.conf.save
% cat >> /etc/sma/snmp/snmpd.conf
# Messaging Server's subagent requires the AgentX protocol
master agentx
^D
% cat >> /etc/sma/snmp/snmpd.conf
% ls -al /var/agentx/
srwxrwxrwx 1 root root 0 Aug 9 13:58 /var/agentx/master

또한 Red Hat Enterprise Linux AS 3 시스템에서 기본 snmpd.conf 파일은 "공개" SNMP 커뮤니티에서 볼 수 있는 정보를 제한합니다. 따라서 해당 제한을 제거하거나 Messaging Server의 하위 에이전트에서 제공하는 MIB를 포함하도록 확장해야 합니다. 최초 테스트를 위해 확장할 것을 권장합니다. 그렇게 하려면 아래 표시된 대로 OID 하위 트리 mib-2.27 및 mib-2.28를 "systemview"라는 보기에 포함시킵니다. 실제 배포를 위해 각 사이트에서 전체 보안 정책을 고려해야 합니다. SNMP 하위 에이전트에서 제공하는 정보는 "읽기 전용"입니다.


% cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.save
% cat >>/etc/snmp/snmpd.conf
# Messaging Server's subagent requires the AgentX protocol
master agentx
# Messaging Server's subagent exports mib-2.27 and .28
# Add the mib-2.27 and .28 OID subtrees to the systemview
view systemview included .1.3.6.1.2.1.27
view systemview included .1.3.6.1.2.1.28
^D
% /sbin/service snmpd restart
% ls -al /var/agentx/master
srwxr-xr-x 1 root root 0 Aug 8 21:20 /var/agentx/master

SNMP v3 컨텍스트 이름을 사용하여 동일한 호스트 컴퓨터에서 동시에 실행 중인 다양한 Messaging Server 인스턴스의 MIB를 구별할 경우 SNMP v3 쿼리에 사용할 하나 이상의 SNMP v3 사용자 아이디와 비밀번호를 구성해야 합니다.

A.3.2 Messaging Server 하위 에이전트 구성

Messaging Server SNMP 하위 에이전트의 기본 작업을 위해서는 하위 에이전트를 활성화한 다음 수동 시작 명령을 한 번만 실행하면 됩니다. 그 이후에는 Messaging Server가 시작되거나 중지될 때마다 하위 에이전트도 함께 시작되거나 중지됩니다. Solaris와 Linux 모두에서 이 구성을 적용하는 데 필요한 명령은 다음과 같습니다.


% configutil -o local.snmp.enable -v 1
% start-msg snmp

이 명령을 실행한 후 명령줄에서 snmpwalk 명령을 사용하여 하위 에이전트를 테스트할 수 있습니다. Solaris 및 Linux에 해당하는 예제 아래의 스크린 샷을 참조하십시오. rfc2248.txtrfc2249.txt 파일은 Network Services 및 MTA MIB의 복사본입니다. Solaris 시스템에서는 이러한 파일이 /etc/sma/snmp/mibs/ 디렉토리에 NETWORK-SERVICES-MIB.txtMTA-MIB.txt 이름으로 존재할 수도 있습니다. 이러한 파일을 snmpwalk 도구에 제공할 필요는 없지만, 그렇게 하면 snmpwalk에서 숫자 객체 식별자(OID) 대신 각 MIB 변수의 이름을 인쇄할 수 있습니다.

Solaris에서의 기본 테스트:


% D=/opt/SUNWmsgsr/examples/mibs /usr/sfw/bin/snmpwalk -v 1 -c public \
    -m +$D/rfc2248.txt:$D/rfc2249.txt 127.0.0.1 mib-2.27
NETWORK-SERVICES-MIB::applName.1 = STRING: /opt/SUNWmsgsr MTA on mail.siroe.com
...
% D=/opt/SUNWmsgsr/examples/mibs /usr/sfw/bin/snmpwalk -v 1 -c public \
     -m +$D/rfc2248.txt:$D/rfc2249.txt 127.0.0.1 mib-2.28
MTA-MIB::mtaReceivedMessages.1 = Counter32: 1452
MTA-MIB::mtaStoredMessages.1 = Gauge32: 21
...

Linux에서의 기본 테스트:


% export D=/opt/sun/messaging/examples/mibs
% /usr/bin/snmpwalk -v 1 -c public \
     -m +$D/rfc2248.txt:$D/rfc2249.txt 127.0.0.1 mib-2.27
NETWORK-SERVICES-MIB::applName.1 = STRING: /opt/sun/messaging MTA on mail.siroe.com
...
% /usr/bin/snmpwalk -v 1 -c public \
     -m +$D/rfc2248.txt:$D/rfc2249.txt 127.0.0.1 mib-2.28
MTA-MIB::mtaReceivedMessages.1 = Counter32: 21278
MTA-MIB::mtaStoredMessages.1 = Gauge32: 7
...

A.3.3 독립형 SNMP 에이전트로 실행

Messaging Server의 SNMP 하위 에이전트를 독립형 SNMP 에이전트로 실행되도록 구성하기 전에 SNMP 요청을 수신하는 데 사용할 이더넷 인터페이스와 UDP 포트를 결정해야 합니다. 기본적으로 SNMP 하위 에이전트는 UDP 포트 161을 사용하여 사용 가능한 모든 이더넷 인터페이스를 수신합니다. 대부분의 경우 플랫폼의 SNMP 마스터 에이전트인 snmpd를 방해하지 않도록 포트 번호를 변경할 수 있습니다. HA 페일오버와 같은 일부 환경에서는 이더넷 인터페이스를 사용 가능한 모든 인터페이스(INADDR_ANY)에서 IP 주소로 식별되는 특정 인터페이스로 변경할 수도 있습니다. 이더넷 인터페이스 및 UDP 포트의 두 개념은 local.snmp.listenaddrlocal.snmp.port 옵션을 통해 제어됩니다.

이더넷 인터페이스와 UPD 포트를 선택하면 local.snmp.standalone 옵션의 값이 설정되고 하위 에이전트가 다시 시작됩니다. 그러면 하위 에이전트가 snmpd 및 모든 하위 에이전트에 독립적으로 SNMP 에이전트로 작동합니다.

예를 들어, IP 주소 10.53.1.37를 사용하여 이더넷 인터페이스의 UDP 포트 9161을 수신하는 독립형 에이전트로 실행하려면 다음과 같은 명령을 실행합니다.

독립형 에이전트로 실행하도록 구성:


% configutil -o local.snmp.port -v 9161
% configutil -o local.snmp.listenaddr -v 10.53.1.37
% configutil -o local.snmp.standalone -v 1
% stop-msg snmp
% start-msg snmp
% snmpwalk -v 1 -c public 10.53.1.37:9161 .
SNMPv2-SMI::mib-2.27.1.1.2.1 = STRING: "/opt/SUNWmsgsr MTA on mail.siroe.com"
...

A.3.4 여러 Messaging Server 인스턴스 모니터링

여기서는 동일한 호스트 컴퓨터에서 실행 중인 여러 Messaging Server 인스턴스를 모니터링하는 두 가지 기술에 대해 설명합니다. 독립형 모드에서 하위 에이전트를 실행하는 첫 번째 기술은 Messaging Server의 개별 인스턴스가 호스트 컴퓨터 사이에서 동적으로 이동할 수 있는 고가용성(HA) 페일오버 구성에 적합합니다. SNMP v3 컨텍스트 이름을 사용하는 두 번째 기술은 Messaging Server의 여러 인스턴스가 단일 시스템으로 한정되고 SNMP 모니터링 소프트웨어에 의해 폴링되는 IP 주소 수를 제한하려는 경우(예: 모니터링 소프트웨어 라이센스 비용이 IP 주소 단위로 부과되는 경우)에 몇 가지 제한된 이점을 제공합니다. 이 두 번째 기술은 HA 페일오버 설정에서도 사용될 수 있지만 독립형 모드 기술과 같은 수의 IP 주소만큼만 폴링해야 합니다.

A.3.5 고가용성 페일오버를 위해 독립형 에이전트 사용

Messaging Server의 SNMP 모니터링이 요구되는 고가용성 페일오버 설정에서는 A.3.3 독립형 SNMP 에이전트로 실행에서 설명한 것처럼 Messaging Server의 SNMP 하위 에이전트를 독립형 에이전트로 실행하는 것이 좋습니다. 하위 에이전트가 독립형 모드로 실행되는 경우 Messaging Server의 각 HA 인스턴스는 local.snmp.listenaddr 옵션이 해당 인스턴스의 페일오버 IP 주소 값으로 설정되어야 합니다. 관리를 간소화하기 위해 각 인스턴스는 동일한 UDP 포트를 사용하지만 각 물리적 클러스터 호스트에서 실행 중인 snmpd 데몬에서 사용되는 포트와 구별되어야 합니다. 일반적으로 이러한 데몬은 UDP 포트 161을 사용하므로 local.snmp.port 옵션을 통해 다른 포트 번호를 명시적으로 지정합니다.

Messaging Server의 SNMP 지원을 여기에 권장된 대로 구성한 경우 모니터링 스테이션은 인스턴스가 실행 중인 물리적 클러스터 호스트에 상관없이 페일오버 IP 주소 또는 호스트 이름을 통해 Messaging Server의 각 인스턴스를 모니터링할 수 있습니다. 또한 Messaging Server의 독립형 SNMP 에이전트는 각각 인스턴스의 고유한 페일오버 IP 주소로 식별되는 해당 가상 이더넷 인터페이스만 수신하기 때문에 서로 충돌하지 않습니다. 이러한 가상 이더넷 인터페이스는 HA 페일오버 프레임워크에서 자동으로 생성됩니다. UDP 포트를 신중하게 선택했기 때문에 에이전트가 클러스터 내의 시스템에서 실행 중인 snmpd 데몬과 충돌하지 않습니다.

A.3.6 SNMP v3 컨텍스트 이름을 통해 여러 인스턴스 구별

A.3.3 독립형 SNMP 에이전트로 실행에서 설명한 것처럼 Messaging Server의 SNMP 지원을 독립형 모드로 사용할 때의 단점은 없지만, 일부 사이트에서는 동일한 시스템에서 동시에 실행 중인 여러 Messaging Server 인스턴스를 모니터링하는 기능을 유지하면서 많은 기존의 하위 에이전트 모드를 사용하는 것이 더 좋을 수도 있습니다. 예를 들어, 라이센스 모델에 의해 폴링될 수 있는 IP 주소 수가 제한되는 SNMP 모니터링 시스템이 있습니다. 이렇게 하려면 local.snmp.standalone을 0으로 설정한 상태에서 Messaging Server의 SNMP 하위 에이전트를 계속 실행합니다. 또는 local.snmp.enablecontextname 옵션을 0이 아닌 값으로 지정하여 각 Messaging Server 인스턴스가 고유한 SNMP v3 컨텍스트 이름을 사용하도록 구성합니다. service.defaultdomain 값과 다른 컨텍스트 이름을 지정하려면 local.snmp.contextname 옵션을 사용하여 원하는 이름을 설정합니다. Messaging Server의 각 SNMP 하위 에이전트 인스턴스가 다시 시작되면 SNMP v3 쿼리를 통해 해당 컨텍스트 이름을 포함하는 인스턴스를 모니터링할 수 있습니다. 동일한 시스템에서 실행되는 두 Messaging Server 인스턴스의 MIB는 인스턴스의 SNMP v3 컨텍스트 이름을 통해 구별되므로 MIB 객체 식별자(OID) 충돌이 발생하지 않습니다.

A.3.7 Messaging Server의 Net-SNMP 기반 SNMP 하위 에이전트 옵션

다음은 Messaging Server의 Net-SNMP 기반 SNMP 하위 에이전트에만 적용되는 옵션입니다. 이 하위 에이전트는 Solaris 10 이상을 실행하는 Solaris 플랫폼과 Linux 플랫폼에서 사용됩니다. 아래 설명된 옵션은 Solaris 9 이하의 운영 체제를 실행하는 Solaris 플랫폼용으로 제공된 레거시 SNMP 하위 에이전트에는 적용되지 않습니다.

아래 설명하는 옵션은 configutil 옵션입니다. 따라서 다음과 같은 형식의 명령을 사용하여 해당 값을 검사합니다.


% configutil -o option-name

여기서 option-name은 값을 표시할 옵션의 이름입니다. 옵션의 값을 설정하거나 변경하려면 다음과 같은 형식의 명령을 사용합니다.


% configutil -o option-name -v option-value

여기서 option-value는 설정할 값입니다. 이 옵션에 대한 변경 사항을 적용하려면 다시 시작해야 합니다.


% stop-msg snmp
% start-msg snmp

다음은 각 옵션에 대한 설명과 해당 옵션의 기본값입니다.

표 A–1 SNMP 하위 에이전트 옵션

옵션(기본값) 

설명 

local.snmp.enable (0)

Messaging Server SNMP 하위 에이전트는 Messaging Server에서 정상적인 시작 및 종료 절차를 수행하는 중에 하위 에이전트를 자동으로 중지하고 시작하도록 이 옵션의 값을 1 또는 true로 설정한 경우에만 실행됩니다. 기본적으로 이 옵션은 0으로 설정되어 하위 에이전트 작업을 비활성화합니다. 하위 에이전트를 활성화하려면 A.3.3 독립형 SNMP 에이전트로 실행에 설명한 것처럼 플랫폼의 마스터 에이전트가 적절하게 구성되어 있어야 합니다.

local.snmp.standalone (0)

Messaging Server의 SNMP 지원은 일반적으로 SNMP 하위 에이전트로 실행되며, 플랫폼의 SNMP 마스터 에이전트 snmpd를 통해 SNMP 요청을 받습니다. 이 작업 모드는 기본값이며 이 옵션의 값을 0 또는 false로 지정하여 선택합니다. 그러나 A.3.3 독립형 SNMP 에이전트로 실행에서 설명한 것처럼 하위 에이전트는 "독립형" 모드로 실행되어 snmpd와 독립적으로 SNMP 에이전트로 작동할 수 있습니다. 독립 모드에서 실행할 경우 하위 에이전트(현재의 SNMP 에이전트)는 각각 local.snmp.listenaddrlocal.snmp.port 옵션에 지정된 이더넷 인터페이스 및 UDP 포트에서 SNMP 요청을 직접 수신합니다. 독립 모드로 실행하려면 이 옵션의 값을 1 또는 TRUE로 지정합니다.

독립 모드로 실행하면 시스템에서 실행 중인 다른 SNMP 마스터나 하위 에이전트를 방해하지 않습니다. 

local.snmp.listenaddr (INADDR_ANY)

독립 모드로 실행할 때 SNMP 요청을 수신할 이더넷 인터페이스의 호스트 이름 또는 IP 주소입니다. 기본적으로 사용 가능한 모든 인터페이스가 수신됩니다. 이 작업은 값 INADDR_ANY를 지정하는 것과 일치합니다. 인터페이스에 연결된 IP 주소나 호스트 이름을 지정하여 선택할 수 있는 인터페이스도 있습니다. 인터페이스는 물리적 인터페이스 또는 가상 인터페이스입니다.

이 옵션은 local.snmp.standalone이 0 또는 FALSE로 설정된 경우 무시됩니다.

local.snmp.cachettl (30)

캐시된 모니터링 데이터의 수명(TTL, 초)입니다. 이 옵션은 하위 에이전트가 동일한 모니터링 데이터를 보고하는 시간을 제어합니다. 이 시간이 경과하면 Messaging Server에서 가져온 새 정보로 해당 데이터를 새로 고칩니다. 메시지 루프 정보를 제외한 모든 데이터는 기본적으로 30초 이하로 캐싱됩니다. 루프 정보는 .HELD 파일을 스캔하여 결정되며 10분마다 한 번만 업데이트됩니다. 그 이유는 모든 디스크 내장 메시지 대기열을 스캔하는 자원 비용 때문입니다.

하위 에이전트는 모니터링 데이터를 지속적으로 업데이트하지 않습니다. 모니터링 데이터는 SNMP 요청을 수신하고 캐시된 데이터가 만료된 경우(즉, TTL이 지난 경우)에만 업데이트됩니다. TTL을 30초로 설정하고 SNMP 요청이 5분마다 생성되는 경우 하위 에이전트는 SNMP 요청이 있을 때마다 Messaging Server에서 새 데이터를 가져옵니다. 즉, Messaging Server의 데이터를 5분마다 한 번만 가져옵니다. 반면에 SNMP 요청이 10초마다 생성되는 경우에는 하위 에이전트는 29초 경과된 캐시된 데이터가 있는 일부 요청에 응답하고 Messaging Server는 30초마다 한 번만 폴링됩니다. 

local.snmp.servertimeout (5)

하위 에이전트는 각 서비스에 대한 TCP 연결을 실제로 열고 프로토콜 교환을 실행하여 각 모니터된 서비스의 작업 상태를 결정합니다. 이 시간 초과 값(초)은 하위 에이전트가 프로토콜 교환 중에 각 단계에 대한 응답을 대기하는 시간을 제어합니다. 기본적으로 5초의 시간 초과 값이 사용됩니다. 

local.snmp.directoryscan (1)

이 옵션을 사용하면 하위 에이전트가 디스크 내장 메시지 대기열에서 .HELD 메시지 파일 및 가장 오래된 메시지 파일을 스캔할지 여부를 제어할 수 있습니다. 이 정보는 mtaGroupLoopsDetected, mtaGroupOldestMessageStoredmtaGroupOldestMessageId MIB 변수와 일치합니다. 이 옵션 값을 1 또는 true로 설정하면 이 정보 캐시가 유지되고 필요에 따라 업데이트됩니다. 이러한 특정 MIB 변수와 관련 없는 수천 개의 대기열 메시지가 있는 사이트에서는 이 옵션 값을 0 또는 false로 설정하는 것이 좋습니다.

local.snmp.enablecontextname (0)

하위 에이전트는 SNMP v3 컨텍스트 이름으로 MIB를 등록할 수 있습니다. 그럴 경우 SNMP 요청에서 컨텍스트 이름을 지정하는 SNMP v3 클라이언트만 MIB를 요청할 수 있습니다. 여러 독립 하위 에이전트에서 컨텍스트 이름을 사용하여 동일한 OID 트리 아래(즉, 동일한 SNMP 마스터 에이전트 아래)에 Network Services 및 MTA MIB를 등록할 수 있습니다. 자세한 내용은 A.3.4 여러 Messaging Server 인스턴스 모니터링을 참조하십시오.

SNMP v3 컨텍스트 이름 사용을 활성화하려면 이 옵션의 값을 1 또는 true로 지정합니다. 그러면 하위 에이전트는 기본적으로 컨텍스트 이름으로 service.defaultdomain 옵션 값을 사용합니다. 컨텍스트 이름으로 다른 값을 사용하려면 local.snmp.contextname 옵션을 사용합니다.

local.snmp.contextname (service.defaultdomain)

local.snmp.enablecontextname을 사용하여 SNMP v3 컨텍스트 이름 사용을 활성화한 경우 이 옵션을 사용하여 하위 에이전트에서 MIB에 대해 사용하는 컨텍스트 이름을 명시적으로 설정할 수 있습니다. 이 옵션에 대해 제공되는 값은 문자열 값이고 SNMP v3 컨텍스트 이름으로 사용하기에 적합해야 합니다. 이 옵션은 local.snmp.enablecontextname 값이 0 또는 false인 경우 무시됩니다.