Linux 기반 임베디드 시스템에서 MIB 파일에 지정된 모든 OID에 대해 SNMP MIB OID 값과 accsess 유형이 저장되는 위치는 어디입니까? (예 : 네트워킹 장비, 셋톱 박스, 기계 제어, 산업 자동화) 이러한 모든 OID MIB 값, 이름, 액세스 유형을 내부적으로 저장하는 내부 데이터베이스가 있어야합니다.OID MIB 값은 어디에 저장됩니까?
1
A
답변
0
일반적으로 net-snmp 기반 에이전트의 경우 개체 정의를 사용하여 마지막으로 SNMP 에이전트 snmpd에 빌드되고 링크 된 C 소스 파일을 생성합니다. net-snmp의 모든 소스 코드를 읽지는 않았지만 내부 데이터베이스가 사용되는지는 의문입니다.
1
데이터가 존재하고 SNMP 에이전트에 의해 액세스되는 여러 가지 방법으로 일반적으로 다음과 같습니다
1) 대개 에이전트 자체
2) 에이전트를 구성하고 모니터링하기위한 에이전트의 내장 메모리, 시스템 호출을 수행하여 로컬 장치/소프트웨어에 쿼리하여 필요한 정보를 조회합니다. 예를 들어 호스트 리소스 -MIB에서 시스템의 가동 시간을 요청하면 에이전트는 API를 통해 또는 파일 시스템과 같은/proc을 통해 커널에 요청하여 결정합니다.
3) 에이전트는 RPC와 같은 메커니즘을 통해 다른 것과 통신합니다. 이러한 메커니즘 중 하나는 AgentX 프로토콜입니다.이 프로토콜은 로컬 시스템에서 사용할 SNMP의 하위 집합 인 하위 에이전트 프로토콜에 대한 마스터 에이전트입니다. 하위 에이전트는 마스터 에이전트에 등록하여 MIB 트리의 일부분에 대해 서비스를 제공하려고 함을 나타냅니다.
기본적으로 에이전트 자체가 데이터를 아는 것은 거의 없습니다. 정보를보고하기 위해서는 시스템에서 항상 거의 항상 다른 질문을해야합니다.
=> 3) SNMP 에이전트가 AgentX 프로토콜을 통해 마스터 에이전트에 요청하고 MIB 변수 값을 요청합니까? 마스터 에이전트는 로컬 장치/시스템 또는 원격지에서 실행됩니까? MIB 트리 자체는 어디에 저장됩니까? – triwo
agentx 프로토콜은 안전하게 실행되도록 설계되지 않았으므로 실제로 동일한 시스템에 있어야합니다. 다른 시스템에 있어야 할 경우 SNMP 프록시를 대신 사용할 수 있습니다. (Net-SNMP가이를 지원합니다 (snmpd.conf 파일의 프록시 섹션 참조). –