SNMP 에이전트에 MIB 파일이 필요한 이유는 무엇입니까?

SNMP 에이전트에 MIB 파일이 필요한 이유는 무엇입니까?

SNMP에 대한 내용과 몇 가지 질문이 여기에 도움이 된 후에 장치에 대한 SNMP 서비스로서의 에이전트 역할을 이해했다고 생각합니다(SQL과 마찬가지로 스토리지에 대한 API임).

SQL 쿼리를 실행하면 SQL 엔진이 모든 작업을 수행하고 결과를 반환합니다. 저장 방법과 저장 위치를 ​​알 필요가 없습니다.

하지만 MIB는 실제 스토리지가 아니므로 에이전트의 역할은 무엇입니까?
에이전트가 내가 따르는 것처럼 MIB만 등록하는 경우지도 시간, 따라서 핸들러로 전혀 사용되지 않으며 핸들러를 우회하지 않고 설정하고 거기에 접근할 수 있는 물리적 저장소가 있음을 의미합니다. 튜토리얼에서는 다음과 같이 합니다.

netsnmp_register_int_instance("my example int variable",
                                  my_registration_oid,
                                  OID_LENGTH(my_registration_oid),
                                  &example1, NULL);

호출을 처리하기 위해 핸들러가 필요하지 않습니다.

내 애플리케이션의 보류 중인 요청 대기열을 모니터링하고 싶기 때문에 application_pending_request에 대한 모든 SNMP 요청이 이에 대해 실행되고 대기열 깊이를 반환하는 에이전트가 필요하다고 가정해 보겠습니다. 결과를 얻기 위해 애플리케이션 대기열을 모두 폴링해야 하는데 실제 MIB가 필요한 이유는 무엇입니까?

답변1

SNMP 작동 방식에 대한 근본적인 오해가 있습니다. 빠르고 더러운 비교:SNMP MIB는 호스트 이름과 유사합니다.. MIB는 OID를 친숙한 이름으로 매핑합니다(예:
.1.3.6.1.2.1.1.1.0=> SNMPv2-MIB::sysDescr.0=> Host Description(uname 출력)).

SNMP 서버(에이전트)에서 해당 정보를 검색하려면~ 해야 하다특정 OID에 게시됩니다.
SNMP 데몬이 정보를 게시하려면 일반적으로 두 가지가 필요합니다.

  1. 해당 정보를 얻는 방법(스크립트, 프로그램 등)
  2. 해당 정보(OID)를 넣을 장소
    (일부 SNMP 데몬에는 OID를 매핑하는 MIB 파일이 필요할 수도 있음)

정보를 검색하려면 OID를 알아야 합니다. 이는 숫자 OID이거나 사용자의 MIB 파일에 있는 "친숙한" 이름일 수 있습니다.SNMP 고객.

SNMP "브라우저"에는 일반적으로 MIB 파일이 필요합니다. MIB 파일이 없으면 의미 없는 숫자 목록만 제공되기 때문입니다.

따라서 귀하의 질문에 대한 대답은 "당신은 그렇지 않습니다.필요MIB 파일은 SNMP와 상호 작용해야 하는 사람에게만 도움이 됩니다."


net-snmp예를 들어(대기열 길이 보고) 사용하고 있는 튜토리얼 (UCD-SNMP) 에서 나온 것 같습니다 .
net-snmp이러한 종류의 기능이 내장되어 있습니다. 매뉴얼 페이지와 예제 구성 파일을 읽어 보십시오( exec외부 스크립트 실행 지시문에 특히 주의하십시오. 일반적으로 대기열 길이를 인쇄하는 스크립트를 실행하고 해당 OID를 쿼리합니다). 모니터링 소프트웨어/SNMP 클라이언트)

관련 정보