SNMP中的MIB是什么?

在SNMP中,我们都应该知道著名的MIB了。那么这个具体是什么作用呢?在此我们就来详细介绍一下这个SNMP mib的具体作用。管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。图1画的是管理信息库的一部分,它又称为对象命名(objectnamingtree)。

图1 管理信息库的对象命名举例

对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。在ISO的下面有4个结点,其中的饿一个(标号3)是被标识的组织。在其下面有一个美国国防部(Department of Defense)的子树(标号是6),再下面就是Internet(标号是1)。在只讨论Internet中的对象时,可只画出Internet以下的子树(图中带阴影的虚线方框),并在Internet结点旁边标注上{1.3.6.1}即可。

在Internet结点下面的第二个结点是mgmt(管理),标号是2。再下面是管理信息库,原先的结点名是mib。1991年定义了新的版本MIB-II,故结点名现改为mib-2,其标识为{1.3.6.1.2.1},或{Internet(1) .2.1}。这种标识为对象标识符。

最初的结点mib将其所管理的信息分为8个类别,见表1。现在de mib-2所包含的信息类别已超过40个。

表1 最初的结点mib管理的信息类别

 

类别

标号

所包含的信息

system

interfaces

address translation

ip

icmp

tcp

udp

egp

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

主机或路由器的操作系统

各种网络接口及它们的测定通信量

地址转换(例如ARP映射)

Internet软件(IP分组统计)

ICMP软件(已收到ICMP消息的统计)

TCP软件(算法、参数和统计)

UDP软件(UDP通信量统计)

EGP软件(外部网关协议通信量统计)

应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。

这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。例如IBM为11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。世界上任何一个公司、学校只要用电子邮件发往iana-mib@isi.edu进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用SNMP进行管理。

 

 讲解如何进行SNMP MIB的查看

通过《SNMP中的MIB是什么?》的介绍,相信大家对SNMP MIB已经有所了解了。那么本文主要讲述一下如何查看本地的SNMP MIB。那么具体的操作我们已经在文中为大家详细展示了出来。

在集群节点上用下面的命令检查MIB:

  #snmpwalk localhost -v 1 -c public  

这个命令应产生一个很长的报告显示集群节点上的MIB,象征本地SNMP代理(snmpd)响应了查询。

我们用这个命令查询一些有用的信息:

  #snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9  

注意:在这个命令中,我们使用了一串数值代替符号名定位SNMP管理信息库(MIB)中的信息,为了查找这个数字对象标识符代表的符号名或文本,使用:

  #snmptranslate .1.3.6.1.4.1.2021.9  

如果你象配置文件示例那样设置了磁盘警报参数的话,你会看到:

  enterprises.ucdavis.dskTable.dskEntry.dskIndex.1 = 1enterprises.ucdavis.dskTable.dskEntry.dskIndex.2 = 2enterprises.ucdavis.dskTable.dskEntry.dskPath.1 = /enterprises.ucdavis.dskTable.dskEntry.dskPath.2 = /varenterprises.ucdavis.dskTable.dskEntry.dskDevice.1 = /dev/sdb2enterprises.ucdavis.dskTable.dskEntry.dskDevice.2 = /dev/sda3enterprises.ucdavis.dskTable.dskEntry.dskMinimum.1 = 100000enterprises.ucdavis.dskTable.dskEntry.dskMinimum.2 = 100000enterprises.ucdavis.dskTable.dskEntry.dskMinPercent.1 = -1enterprises.ucdavis.dskTable.dskEntry.dskMinPercent.2 = -1enterprises.ucdavis.dskTable.dskEntry.dskTotal.1 = 381121enterprises.ucdavis.dskTable.dskEntry.dskTotal.2 = 253871enterprises.ucdavis.dskTable.dskEntry.dskAvail.1 = 268888enterprises.ucdavis.dskTable.dskEntry.dskAvail.2 = 162940enterprises.ucdavis.dskTable.dskEntry.dskUsed.1 = 92554enterprises.ucdavis.dskTable.dskEntry.dskUsed.2 = 77824enterprises.ucdavis.dskTable.dskEntry.dskPercent.1 = 26enterprises.ucdavis.dskTable.dskEntry.dskPercent.2 = 32enterprises.ucdavis.dskTable.dskEntry.dskPercentNode.1 = 18enterprises.ucdavis.dskTable.dskEntry.dskPercentNode.2 = 0enterprises.ucdavis.dskTable.dskEntry.dskErrorFlag.1 = 0enterprises.ucdavis.dskTable.dskEntry.dskErrorFlag.2 = 0enterprises.ucdavis.dskTable.dskEntry.dskErrorMsg.1 =enterprises.ucdavis.dskTable.dskEntry.dskErrorMsg.2 =  

注意:在这个磁盘空间SNMP MIB报告中你会看到加州大学的名字,因为这就是它们开发的。

特别要注意dskEntry.dskErrorFlag 行(已经加粗显示),这些行指出磁盘是低于(值0)或高于(值1)你在snmp.conf中指定的阀值,花点时间修改阀值(以M为单位)比磁盘分区的剩余空间(使用df -m命令检查)还小的值,然后输入:

  #service snmpd restart   或  #/etc/init.d/snmpd restart  

注意:kill HUP snmpd守护进程的PID能达到同样的目的。

然后再次输入相同的snmpwalk命令:

  #snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9  

你应该看到错误标志指示磁盘分区已经用光了磁盘空间。