제2장 SNMP Agent

내용 목차

2.1. 개요
2.2. 컴포넌트
2.3. 환경설정

본 장에서는 JEUS SNMP Agent의 특징과 환경설정에 대해서 설명한다.

2.1. 개요

현재 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와 모든 엔진 컨테이너)에서 실행할 수 있다.

2.2. 컴포넌트

본 절에서는 JEUS SNMP Agent가 동작하는데 필요한 컴포넌트에 대해서 설명한다.

JEUS SNMP Agent가 동작하기 위한 Main 컴포넌트는 다음과 같다.

  • JEUS SNMP Agent

    JMX Mbean 서버와 통신을 하며, 논리적으로 JEUS 서버의 Manager 또는 엔진 컨테이너 내에 위치한다. JEUS 서버와 세부적인 엔진 컨테이너 구조에 대해서는 "JEUS Server 안내서"를 참조한다.

  • MIB(Management Information Base)

    JEUS Management 정보 구조를 제공한다. MIB 파일명은 TMAX-JEUS6.0-MIB.mib이다.

  • 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 애플리케이션에 그 값을 리턴한다.

2.3. 환경설정

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을 사용해서 처리하도록 설정한다.

    • <min>, <max> : Worker Thread의 최소, 최대 개수

    • <period> : Worker Thread 체크 주기

    참고

    1. SNMP Agent의 설정은 JMX 설정의 한 부분이므로 스키마에 관련된 것은 "JEUS JMX 안내서"의 환경설정을 참고한다.

    2. Thread Pool의 동작에 대해서는 JEUS의 여러 다른 컴포넌트에서 공유하는 설정이므로 자세히 설명하지 않는다.

  • 시스템 프로퍼티 설정

    • jeus.management.snmp.community

      community name을 설정한다. community name은 SNMP에서 보안 목적으로 사용하는 간단한 암호와 같은 문자열이다.