IT_Programming/Dev Tools

[펌] SNMP 감시와 관리

JJun ™ 2010. 12. 22. 10:18

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

출처:  http://xrath.com/javase/ko/6/docs/ko/technotes/guides/management/snmp.html

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

 

Simple Network Management Protocol (SNMP)는, 네트워크 관리의 업계표준에 자리매김됩니다. SNMP 로 관리되는 객체는, 관리 정보 베이스 (MIB)에 배치됩니다. SNMP 에이전트는, Java 가상 머신 (Java VM)의 Instrumentation용으로서 표준의 MIB 를 공개하고 있습니다. Java VM 의 감시 및 관리에 사용하는 표준의 MIB 는,http://java.sun.com/javase/6/docs/jre/api/management/JVM-MANAGEMENT-MIB.mib 로부터 다운로드할 수 있습니다.

 

SNMP 에이전트의 유효화

SNMP 를 사용해 Java VM 를 감시하려면 , Java VM 의 시동시에 우선 SNMP 에이전트를 유효하게 할 필요가 있습니다. 단일 사용자 환경 또는 다중 사용자 환경의 몇개의 SNMP 에이전트를 유효하게 할 수가 있습니다. 이후, Java VM 는 SNMP 준거의 툴을 사용해 감시할 수가 있습니다.

 

Java VM 시동시의 시스템 프로퍼티의 설정에 관한 일반적인 정보에 대해서는,제 2 장 「JMX 테크놀러지를 사용하는 감시와 관리」의 「시스템 프로퍼티의 설정」을 참조해 주세요. 후반으로는, 단일 사용자 환경이나 다중 사용자 환경에 있어 SNMP 에이전트를 유효하는 방법에 대해 설명합니다. 프로세스는, 어느 환경에서도 동일합니다만, 실행하는 액션은 조금 다릅니다.

 

액세스 콘트롤 리스트 파일

액세스 콘트롤 리스트 (ACL) 템플릿 파일은, Java Platform, Standard Edition (Java SE 플랫폼)와 함께 제공되어JRE_HOME/lib/management/snmp.acl.template 에 있습니다. 여기서,JRE_HOME 는, Java Runtime Environment (JRE) 구현이 인스톨 되고 있는 디렉토리입니다. 이 파일은, 단일 사용자 환경인가, 다중 사용자 환경인가에 응해 JRE_HOME/lib/management/snmp.acl 또는 홈 디렉토리의 어느 쪽인가에 카피합니다.

 

읽기 권한만이 할당할 수 있고 있는 것을 확인해 주세요. 이것은, 이 파일에 암호화되어 있지 않은 SNMP 커뮤니티 캐릭터 라인이 포함되어 있기 (위해)때문에입니다. 시큐리티상의 이유로부터, 시스템에서는, 소유자만이 이 파일에 대한 읽기 권한을 소지하고 있는 것을 확인해, 이 조건이 채워지지 않은 경우는 에러로 시스템이 종료합니다. 따라서, 다중 사용자 환경에서는, 이 파일을 홈 디렉토리등의 비공개의 영역에 보존할 필요가 있습니다.

 

예 5-1 에서는, ACL 파일에 존재할 가능성이 있는 엔트리의 일부를 나타냅니다.

 

예 5-1 샘플의 ACL 엔트리

#The communities public and private are allowed access from the local host.
acl = {
        {
          communities = public, private
          access = read-only
          managers = localhost
        }
      }
# Traps are sent to localhost only
trap = {
          {
            trap-community = public
            hosts = localhost
          }
        }

 

 단일 사용자 환경에 있어 SNMP 에이전트를 유효하게 하는 방법

  1. Java VM 의 기동시에, 다음의 시스템 프로퍼티을 설정합니다.

    com.sun.management.snmp.port=portNum

    위의 프로퍼티으로,portNum 는, 감시에 사용하는 포트 번호를 나타냅니다. 이 프로퍼티의 설정을 실시하는 것으로, 착신 SNMP 요구의 지정의 포트 번호상에서 대기하는 SNMP 에이전트를 개시합니다.

  2. ACL 파일을 작성합니다.

    ACL 템플릿 파일을 JRE_HOME/lib/management/snmp.acl.template 로부터 JRE_HOME/lib/management/snmp.acl 에 카피합니다.

  3. ACL 파일에 액세스권을 설정합니다.

    소유자만이 ACL 파일을 읽어낼 수가 있는 것을 확인해, 필요에 따라서 커뮤니티 캐릭터 라인을 추가합니다.

 

 다중 사용자 환경에 있어 SNMP 에이전트를 유효하게 하는 방법

  1. Java VM 의 기동시에, 다음의 시스템 프로퍼티을 설정합니다.

    com.sun.management.snmp.port=portNum
    com.sun.management.snmp.acl.file=ACLFilePath

    여기서 ACLFilePath 는, ACL 파일에의 패스를 나타냅니다.

  2. ACL 파일을 작성합니다.

    ACL 템플릿 파일을 JRE_HOME/lib/management/snmp.acl.template 로부터 홈 디렉토리내의 snmp.acl 라는 이름의 파일에 카피합니다.

  3. ACL 파일에 액세스권을 설정합니다.

    소유자만이 ACL 파일을 읽어낼 수가 있는 것을 확인해, 필요에 따라서 커뮤니티 캐릭터 라인을 추가합니다.

 

SNMP 감시와 관리의 프로퍼티

구성 파일 또는 커멘드행의 어느 쪽인가에 두어 SNMP 의 감시 프로퍼티과 관리 프로퍼티의 설정을 실시할 수가 있습니다. 커멘드행으로 지정한 프로퍼티에 의해, 구성 파일내의 프로퍼티을 오버라이드(override) 합니다. 디폴트의 구성 파일은,JRE_HOME/lib/management/management.properties 입니다. Java VM 에서는, 커멘드행의 프로퍼티 com.sun.management.snmp.port 의 설정을 실시하는 경우는 이 구성 파일을 읽어들입니다.

 

다음의 커멘드행 옵션으로, 구성 파일의 다른 위치를 지정할 수 있습니다.

com.sun.management.config.file=ConfigFilePath

위의 프로퍼티에서는,ConfigFilePath 가 구성 파일에의 패스입니다.

Java VM 를 시동시키려면 , 모든 시스템 프로퍼티을 지정할 필요가 있습니다. Java VM 가 기동한 뒤는, 시스템 프로퍼티 (예를 들어,setProperty 메소드 경유), 패스워드 파일, ACL 파일, 또는 구성 파일에의 어떠한 변경도 반영되지 않습니다.

 

겉(표) 5-1 에 모든 SNMP 관리 프로퍼티을 나타냅니다.

 

겉(표) 5-1 SNMP 감시와 관리의 프로퍼티

프로퍼티의 이름

설명

디폴트 설정

com.sun.management.snmp.trap

SNMP 에이전트가 트랩을 송신하는 원격 포트.

162

com.sun.management.snmp. interface

옵션. 로컬 호스트 InetAddress 는, 주어진(given) InetAddress 에 대한 바인드를 SNMP 에이전트에 강제합니다. 특정의 서스네트워크만을 대기하는 경우, 이것은 multi-homed host용이 됩니다.

없음

com.sun.management.snmp.acl

SNMP ACL 의 체크를 유효 또는 무효로 합니다.

true

com.sun.management.snmp. acl.file

유효한 ACL 파일에의 패스. Java VM 가 기동한 뒤는, ACL 파일을 수정해도 효과는 얻을 수 있지 않습니다.

JRE_HOME/lib/management/snmp.acl

 

구성 에러

SNMP 에이전트의 기동중에 어떠한 에러가 발생하는 경우, Java VM 는, 예외를 throw 해 종료합니다.

구성 에러에는, 다음과 같은 것이 있습니다.

  • 포트 번호에 대한 바인드의 실패.

  • 소유자 이외의 사용자가 패스워드 파일을 읽어낼 수가 있다.

  • 무효인 SNMP ACL 파일.

어플리케이션으로 시큐리티 매니저를 실행하는 경우, 시큐리티 액세스권 파일에 추가의 액세스권을

등록할 필요가 있습니다.