본 장에서는 JEUS SNMP Agent의 특징과 환경설정에 대해서 설명한다.
현재 JEUS SNMP Agent는 J2EE의 컴포넌트뿐만 아니라 엔터프라이즈 메시지 미들웨어의 특징을 가지고 있다.
주요 특징은 다음과 같다.
JMX management 1.0 스펙을 완전하게 제공한다.
일반적으로 NMS 프로토콜로 사용되는 SNMPv1과 SNMPv2를 제공한다.
SNMPv1과 SNMPv2를 사용하는 모든 SNMP Manager들은 Agent를 통해서 JEUS 내부 정보를 조회할 수 있다.
SNMP Agent와 보안 통신을 하기 위한 SNMPv3를 제공한다.
안정적으로 SNMP Agent와 통신하기 위해서는 SNMP Manager가 필요하다. SNMPv3를 사용하는 모든 SNMP Manager들은 안전하게 정보를 가져올 수 있다.
JEUS SNMP Agent들은 각각의 JEUS JVM(JEUS Manager와 모든 엔진 컨테이너)에서 실행할 수 있다.
본 절에서는 JEUS SNMP Agent가 동작하는데 필요한 컴포넌트에 대해서 설명한다.
JEUS SNMP Agent가 동작하기 위한 Main 컴포넌트는 다음과 같다.
JMX Mbean 서버와 통신을 하며, 논리적으로 JEUS 서버의 Manager 또는 엔진 컨테이너 내에 위치한다. JEUS 서버와 세부적인 엔진 컨테이너 구조에 대해서는 "JEUS Server 안내서"를 참조한다.
SNMP Manager
SNMP Agent와 메시지를 주고받는다.
JEUS SNMP Agent는 JEUS를 관리하기 위한 기반 구조를 제공하며, J2EE 1.4와 J2EE management 1.0을 구현했다.
SNMP Manager 애플리케이션이 SNMP 메시지를 전송할 때 SNMP Agent는 설정한 Port를 Listen하고 있다. 해당 Port로 요청이 들어오면 먼저 MIB-tree에서 OID를 찾고, 그것의 PDU 타입을 알아내서 JEUS JMX Mbean 서버를 호출한다. 정보를 찾아내면 SNMP Manager 애플리케이션에 그 값을 리턴한다.
JEUSMain.xml을 통해 설정할 수 있는 항목들과 시스템 프로퍼티를 이용하여 설정할 수 있는 항목이 존재한다.
JEUSMain.xml 설정
JEUSMain.xml의 <jmx-manager> 태그 하위에 위치한 <snmp-adaptor> 부분에 설정할 수 있는 항목들에 대한 예제이다.
[예 2.1] SNMP Agent 설정 : <<JEUSMain.xml>>
<node>
<engine-container>
. . .
</engine-container>
. . .
<jmx-manager>
<html-adaptor-port>7070</html-adaptor-port>
<jmx-connector>
<jmxmp-connector>
<jmxmp-connector-port>5001</jmxmp-connector-port>
</jmxmp-connector>
</jmx-connector>
<snmp-adaptor>
<snmp-adaptor-port>9999</snmp-adaptor-port>
<snmp-version>2</snmp-version>
<snmp-max-packet-size>4096</snmp-max-packet-size>
<snmp-security>false</snmp-security>
<trap-daemon>127.0.0.1</trap-daemon>
<pooling>
<min>1</min>
<max>10</max>
<period>30000</period>
</pooling>
</snmp-adaptor>
</jmx-manager>
. . .
</node>
다음은 설정 항목에 대한 설명이다.
항목 | 설명 |
---|---|
<snmp-adaptor-port> | SNMP 서버가 Listen하고 있는 포트 번호를 설정한다. SNMP Manager는 이 포트 번호를 통해 Management 정보를 요청할 수 있다. |
<snmp-version> | Agent가 사용할 SNMP 버전을 명시한다. 1, 2, 3의 정수 값으로 설정한다. |
<snmp-max-packet-size> | SNMP 패킷에 대한 최댓값을 설정하며 최소 256Bytes부터 설정할 수 있다. |
<snmp-security> | 보안의 적용 여부를 설정한다. 보안은 SNMP 버전 3에서만 설정이 가능하다. |
<trap-daemon> | 장애 상황이 발생했을 때 TRAP 메시지를 보낼 서버를 설정한다. 여러 개 설정이 가능하며 설정된 모든 IP 주소로 메시지를 전송한다. |
<pooling> | SNMP Agent로 많은 요청이 동시에 들어오는 경우 Thread Pool을 사용해서 처리하도록 설정한다.
|
1. SNMP Agent의 설정은 JMX 설정의 한 부분이므로 스키마에 관련된 것은 "JEUS JMX 안내서"의 환경설정을 참고한다.
2. Thread Pool의 동작에 대해서는 JEUS의 여러 다른 컴포넌트에서 공유하는 설정이므로 자세히 설명하지 않는다.
시스템 프로퍼티 설정
jeus.management.snmp.community
community name을 설정한다. community name은 SNMP에서 보안 목적으로 사용하는 간단한 암호와 같은 문자열이다.