SNMP 기본

SNMP(Simple Network Management Protocol)는 주로 네트워크 관리 시스템에서 관리 주의를 보증하는 조건에 대해 네트워크 디바이스를 모니터하는 데 사용되는 인터넷 표준 프로토콜입니다. 일반적으로 SNMP를 지원하는 디바이스는 라우터, 스위치, 서버, 워크스테이션 및 프린터를 포함합니다. 이 절은 SNMP 기본을 소개하고 Cast Iron MIB의 개요를 제공합니다.

SNMP의 어휘에서, Cast Iron 통합 어플라이언스는 "네트워크 요소" 또는 "관리 디바이스"로 참조되어 네트워크의 구성원이며 관리할 수 있음을 표시합니다. 네트워크 요소에는 요소에 관한 정보를 제공하는 에이전트가 포함됩니다. 에이전트는 두 가지 핵심 기능을 수행합니다. 첫 번째, 관리 시스템의 요청에 응답하고 두 번째로 네트워크 요소의 이벤트에 관한 알림을 발송합니다. 에이전트에서 관리자로의 비동기 알림은 트랩으로 부릅니다.

SNMP 트랩은 에이전트가 요청되지 않은 SNMP 메시지를 통해 관리 스테이션에 중요한 이벤트를 알릴 수 있습니다. 폴링 또는 트랩을 통해 제공되는 정보는 MIB(Management Information Base)에서 정의됩니다. MIB는 통신 네트워크에서 엔티티 관리에 사용되는 가상 데이터베이스입니다. MIB는 고유한 오브젝트 ID(OID)를 갖는 각 오브젝트로 오브젝트 계층 구조를 정의합니다. OID는 마침표로 구분된 숫자로 지정됩니다(예: ".1.3.6.1.2.1.1"). OID를 때로는 공통 이름이라고 부릅니다. 예를 들어, 특정 OID .1.3.6.1.2.1.1을 "시스템"으로 참조할 수 있습니다. SNMP 프로토콜은 많은 공용 MIB를 정의하며, 조직이 사용자 정의된 애플리케이션 특정 MIB를 정의할 수 있게 합니다.

Cast Iron MIB 이해

Cast Iron WMC에서 다운로드된 파일은 복수의 MIB DEFINITIONS = BEGIN - END 섹션을 갖습니다. 각 섹션이 고유한 계층 구조로 MIB를 구성합니다. Cast Iron 특정 정보를 폴링하려면 CASTIRON-IA-MIB를 사용하십시오. 각 MIB는 MIB 기능을 설명하는 MODULE-IDENTITY를 갖습니다. MODULE-IDENTITY 뒤에 오는 주석 섹션은 MIB 컨텐츠의 개요를 제공하며 모든 MIB 오브젝트의 이름과 OID를 나열하는 오브젝트 요약을 포함합니다.

참고: NET-SNMP에 의해 제공되는 것 같은 일부 도구는 각 MIB가 단일 파일로 분할되어야 합니다. MIB 분할에 대한 자세한 정보는 SNMP 수신기 설정의 내용을 참조하십시오.
CASTIRON-IA-MIB의 오브젝트 요약의 섹션은 다음과 같습니다.
--   ciIaProjectSummary                             ciia.1.1.1
--    ciIaNbrProjects                               ciia.1.1.1.1
--    ciIaNbrRunningOrchs                           ciia.1.1.1.2
--    ciIaNbrStoppedOrchs                           ciia.1.1.1.3
--    ciIaNbrRunningJobs                            ciia.1.1.1.4
--    ciIaNbrCompletedJobs                          ciia.1.1.1.5
--    ciIaNbrErroredJobs                            ciia.1.1.1.6
표시된 것처럼, ciIaProjectSummary라는 조직 노드(이 경우에는 디렉토리와 비슷한 OBJECT-IDENTITY)가 프로젝트에 관한 일반 정보를 포함합니다. 해당 "디렉토리" 안에 프로젝트 수, 실행 중 및 중지된 오케스트레이션의 수 등을 포함하는 특정 항목(OBJECT-TYPE)이 있습니다. 이들 항목의 의미에 대한 자세한 정보를 알려면 항목의 이름에 대해 파일을 검색하십시오. 예를 들어, ciIaNbrRunningJobs에 관한 정보를 얻으려면 파일에서 다음과 같은 해당 문자열을 검색합니다.
ciIaNbrRunningJobs OBJECT-TYPE                      -- ciia.1.1.1.4
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of currently running jobs.
        "
::= { ciIaProjectSummary 4 }
핵심 영역은 다음과 같습니다.
  • ciIaNbrRunningJobs OBJECT-TYPE - 오브젝트의 이름을 정의합니다. 끝에 OID의 단축 양식을 제공하는 주석이 있음을 참고하십시오.
  • SYNTAX Unsigned32 - 이것은 해당 값이 오르거나 내릴 수 있는 부호 없는 정수입니다.
  • MAX-ACCESS read-only - 읽기 전용 값입니다. 관리자가 요청할 수 있지만 변경할 수 없습니다.
  • DESCRIPTION - 오브젝트를 설명합니다.
다음 예는 ProjectSummary 정보에 대해 폴링할 때 표시되는 데이터를 설명합니다.
$ snmpwalk -v 2c -c public -M "+/home/choller/mibs" -m "+CASTIRON-IA-MIB" flintstone2 ciIaProjectSummary
CASTIRON-IA-MIB::ciIaNbrProjects.0 = Gauge32: 2
CASTIRON-IA-MIB::ciIaNbrRunningOrchs.0 = Gauge32: 0
CASTIRON-IA-MIB::ciIaNbrStoppedOrchs.0 = Gauge32: 14
CASTIRON-IA-MIB::ciIaNbrRunningJobs.0 = Gauge32: 0
CASTIRON-IA-MIB::ciIaNbrCompletedJobs.0 = Gauge32: 0
CASTIRON-IA-MIB::ciIaNbrErroredJobs.0 = Gauge32: 0
다음 데이터는 lciIaProjectTable을 폴링할 때 표시됩니다.
--   ciIaProjectTable                               ciia.1.1.2
--    ciIaProjectEntry                              ciia.1.1.2.1
--     ciIaProjEntryIndex                           ciia.1.1.2.1.1
--     ciIaProjEntryName                            ciia.1.1.2.1.2
--     ciIaProjEntryVersion                         ciia.1.1.2.1.3
--     ciIaProjEntryConfig                          ciia.1.1.2.1.4
--     ciIaProjEntryState                           ciia.1.1.2.1.5
--     ciIaProjEntryNbrRunning                      ciia.1.1.2.1.6
--     ciIaProjEntryNbrCompleted                    ciia.1.1.2.1.7
--     ciIaProjEntryNbrErrored                      ciia.1.1.2.1.8
--     ciIaProjEntryTimePublished                   ciia.1.1.2.1.9
SNMP 테이블이 인증 확인 중일 수 있습니다. SNMP 테이블은 데이터베이스 스키마와 비슷하게 어플라이언스의 각 프로젝트에 관한 이름, 버전, 구성, 상태 및 기타 정보를 표시합니다. 각 항목 이름(예: ciIaProjEntryName, ciIaProjEntryVersion)은 테이블의 열을 설명합니다. 각 항목에 대한 추가 정보를 찾기 위해 MIB에서 해당 문자열을 검색할 수 있습니다. 참고: 반복적인 방식으로 프로젝트 테이블을 "탐색"하려고 시도하면 문제가 발생할 수 있습니다. 대신, 테이블 정보를 볼 때 항상 테이블을 이해하는 도구 기능을 사용하십시오. 다음 예는 "탐색" 기술을 설명합니다. 이 경우에 프로젝트가 공개된 후에 새 구성을 작성하기 위해 복제되어 두 개의 테이블 행이 생성되었습니다. 출력이 표시하는 것처럼, 어떤 항목이 특정 행과 연관되는지를 이해하는 것은 어렵습니다. 이 경우 항목 및 행의 올바른 배열을 판별하기 위해 색인(OID의 마지막 부분)을 보아야 합니다.
$ snmpwalk -v 2c -c public -M "+/home/choller/mibs" -m "+CASTIRON-IA-MIB" flintstone2 ciIaProjectTable
CASTIRON-IA-MIB::ciIaProjEntryName.98304 = STRING: OnlineLicensing
CASTIRON-IA-MIB::ciIaProjEntryName.98305 = STRING: OnlineLicensing
CASTIRON-IA-MIB::ciIaProjEntryVersion.98304 = STRING: 1.0
CASTIRON-IA-MIB::ciIaProjEntryVersion.98305 = STRING: 1.0
CASTIRON-IA-MIB::ciIaProjEntryConfig.98304 = STRING: Default
CASTIRON-IA-MIB::ciIaProjEntryConfig.98305 = STRING: OnlineLicensingClone
CASTIRON-IA-MIB::ciIaProjEntryState.98304 = INTEGER: undeployed(1)
CASTIRON-IA-MIB::ciIaProjEntryState.98305 = INTEGER: undeployed(1)
CASTIRON-IA-MIB::ciIaProjEntryNbrRunning.98304 = Gauge32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrRunning.98305 = Gauge32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrCompleted.98304 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrCompleted.98305 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrErrored.98304 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrErrored.98305 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryTimePublished.98304 = STRING: 2009-6-12,16:36:20.0,+0:0
CASTIRON-IA-MIB::ciIaProjEntryTimePublished.98305 = STRING: 2009-6-12,16:36:20.0,+0:0
정보가 snmptable 명령을 사용하여 맵핑될 때 다음 예에서 보는 것처럼 더 명확하게 표시됩니다.
$ snmptable -v 2c -c public -M "+/home/choller/mibs" -m "+CASTIRON-IA-MIB" flintstone2 ciIaProjectTable
SNMP table: CASTIRON-IA-MIB::ciIaProjectTable

 PEN*                 PEV PEC                  PES          PER COM PEE		PETP
 OnlineLicensing      1.0 Default              undeployed   0   0   0    2009-6-12,16:36:20.0,
                                                                         +0:0
 OnlineLicensing      1.0 OnlineLicensingClone undeployed   0   0   0    2009-6-12,16:36:20.0,
                                                                         +0:0

*Table Key: PEN=ciIaProjEntryName, PEV=ciIaProjEntryVersion, PEC=ciIaProjEntryConfig, 
 PES=ciIaProjEntryState, PER=ciIaProjEntryNbrRunning, COM=ciIaProjEntryNbrCompleted, 
 PEE=ciIaProjEntryNbrErrored, PETP=ciIaProjEntryTimePublished

이들 예는 OID가 아닌 텍스트 이름을 사용함을 참고하십시오. MIB의 기능이 OID와 텍스트 이름 사이를 맵핑하는 것이기 때문에 정기적으로 OID를 사용할 필요가 없습니다.