我最近学习了 SNMP。基本上,我通过与普通数据库系统进行比较来理解它。因此,让我简要介绍一下我的理解。
因此,我们有一个中央数据库(大树),它以 MIB 文件描述的结构化方式包含有关系统、网络、接口和其他资源的所有信息。每条信息都由一个 OID(对象标识符)标识。使用各种命令,如、snmpget
等,SNMP MASTER 可以一次从代理获取每条信息或多条信息。这些命令实际上是在查询中央数据库的信息并将其发送给 MASTER。snmpwalk
snmpbulkwalk
MASTER 可以使用snmpset
命令更新此中央数据库。
snmptrap
或者snmpinform
是代理用来告诉 MASTER 事件发生的命令。因此,如果我执行以下操作:
snmptrap -v 2c -c public localhost "" NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 9323
代理人将是他的netSnmpExampleHeartbeatRate
主人9323
。那么,这些信息是否存储在 OID 下的中央数据库中.1.3.6.1.4.1.8072.2.3.2.1
?
$snmptranslate NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatRate -On
.1.3.6.1.4.1.8072.2.3.2.1
我试着snmpget
确认一下。
$snmpget -v2c -c public localhost NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatRate
NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatRate = No Such Object available on this agent at this OID
看,它告诉没有可用的对象。我的理解是它没有存储在任何地方。snmptrap
发送信息,就是这样。现在我明白了我可以记录陷阱信息。但是它是否将它存储在可以查询的任何地方?我错过了什么吗?