一般我们下载回来的mib文件可能后缀名为.mib,为了清晰起见,可能需要改名。一般改成 MIB_NAME.txt 这样的形式。
例如/usr/share/snmp/mibs/IP-MIB.txt 中包含如下一行
IP-MIB DEFINITIONS ::= BEGIN
这个MIB_NAME具体的定义是在mib文件中第一个包含 DEFINITIONS 的行,在DEFINITIONS之前的那个词就是MIB_NAME。
不过这个mib文件的名字是什么其实不重要,重要的是包含DEFINITIONS 的行中所定义的"Module"名字。
网上有一些文档说增加一个新的mib文件就是把mib文件复制到'/usr/share/snmp/mibs/'中就可以了,其实这是不对的!
首先,我们要将mib文件复制到'/usr/share/snmp/mibs/'中
但是光复制过去还不能生效,'snmpget'是不会自动加载所有在/usr/share/snmp/mibs/目录中的mib文件的!
如果不能正确加载mib文件的话,就会出现 "Unknown Object Identifier" 这样的错误。
因此在复制了mib文件到'/usr/share/snmp/mibs/'中以后,需要修改/usr/share/snmp/snmp.conf,加入下边一行:
mibfile /usr/share/snmp/mibs/DS11INTEG-MIB.txt
或者
mibs +DS11INTEG-MIB
或者也可以在提示符下输入
# export MIBS=ALL
这样就可以引用我们新加入的mib文件了。例如:
# snmpget -v1 -c public 192.168.49.253 BREEZECOM-DOT11EXT-MIB::roamQuality.1
BREEZECOM-DOT11EXT-MIB::roamQuality.1 = INTEGER: 3
或者这样也可以
# snmpget -v1 -c public 192.168.49.253 roamQuality.1
BREEZECOM-DOT11EXT-MIB::roamQuality.1 = INTEGER: 3
使用'snmptranslate' 命令可以获得一个文本项对应的OID值
# snmptranslate -On BREEZECOM-DOT11EXT-MIB::roamQuality
.1.3.6.1.4.1.710.7.1.5.1.23.1.7
也可以使用'snmptranslate' 命令查询一个指定的对象
# snmptranslate -IR roamQuality
BREEZECOM-DOT11EXT-MIB::roamQuality
还可以用snmptranslate命令把OID转化成文字描述
# snmptranslate .1.2.840.10036.2.2.1.12
IEEE802dot11-MIB::dot11FCSErrorCount
# snmptranslate -Of .1.2.840.10036.2.2.1.12
.iso.member-body.us.ieee802dot11.dot11mac.dot11CountersTable.dot11CountersEntry.dot11FCSErrorCount
也可用snmptranslate命令从mib文件获得某个对象的全部细节
# snmptranslate -Td BREEZECOM-DOT11EXT-MIB:roamQuality
BREEZECOM-DOT11EXT-MIB::roamQuality
roamQuality OBJECT-TYPE
-- FROM BREEZECOM-DOT11EXT-MIB
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "An indicator for the quality of the BSS. The quality is
calculated over the received Beacons of the BSS and depends
on the selected quality indicator. The semantics of the
indicator is 'low is good quality' and 'high is bad quality'."
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) breezeCOM(710) ds11Products(7) dot11ExtMIB(1) dot11ExtWBUObjs(5) roam(1) roamTable
(23) roamEntry(1) 7 }
另一个有用的命令是snmpwalk
# snmpwalk -v1 -c public 192.168.49.253 dot11CountersTable
IEEE802dot11-MIB::dot11TransmittedFragmentCount.1 = INTEGER: 122172497
IEEE802dot11-MIB::dot11MulticastTransmittedFrameCount.1 = INTEGER: 45242
IEEE802dot11-MIB::dot11FailedCount.1 = INTEGER: 4009
IEEE802dot11-MIB::dot11RetryCount.1 = INTEGER: 1601483
IEEE802dot11-MIB::dot11MultipleRetryCount.1 = INTEGER: 885859
IEEE802dot11-MIB::dot11FrameDuplicateCount.1 = INTEGER: 543281
IEEE802dot11-MIB::dot11RTSSuccessCount.1 = INTEGER: 0
IEEE802dot11-MIB::dot11RTSFailureCount.1 = INTEGER: 0
IEEE802dot11-MIB::dot11ACKFailureCount.1 = INTEGER: 3971754
IEEE802dot11-MIB::dot11ReceivedFragmentCount.1 = INTEGER: 108826417
IEEE802dot11-MIB::dot11MulticastReceivedFrameCount.1 = INTEGER: 31359
IEEE802dot11-MIB::dot11FCSErrorCount.1 = INTEGER: 831325
IEEE802dot11-MIB::dot11TransmittedFrameCount.1 = INTEGER: 122156588
IEEE802dot11-MIB::dot11WEPUndecryptableCount.1 = INTEGER: 0
需要注意的是,在使用snmpget命令的时候,需要在查询的OID尾部增加.0 或者 .1,不然会报错。
# snmpget -v1 -c public 192.168.49.253 dot11ACKfailureCount
Error in packet
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: IEEE802dot11-MIB::dot11ACKFailureCount
# snmpget -v1 -c public 192.168.49.253 dot11ACKFailureCount.1
IEEE802dot11-MIB::dot11ACKFailureCount.1 = INTEGER: 3971912
还有在unix系统中,系统是大小写敏感的,因此写OID的时候注意大小写不要写错。
分享到:
相关推荐
Net-SNMP动态库方式扩展MIB,Hello SNMP扩展示例,仅供参考,做相关开发的可以自行动态扩展
在移植snmp时需要利用NET-SNMP-TUTORIAL-MIB.txt进行简单的测试,官网的NET-SNMP-TUTORIAL-MIB.txt
net-snmp5.4环境下,自定义动态扩展mib方法。自己按照net-smp官方网站上的方法以及网上的资料,总结了一个动态扩展mib的方法,有什么问题大家可以提出来,我的邮箱:dothingsbyjava@gmail.com
是net-snmp官网上的TUTORIAL-MIB文件,由于官网不太容易登陆,因此贴在这里供大家下载!
net-snmp-5.5-49.el6_5.3.x86_64.rpm net-snmp-devel-5.5-49.el6_5.3.i686.rpm net-snmp-devel-5.5-49.el6_5.3.x86_64.rpm net-snmp-libs-5.5-49.el6_5.3.i686.rpm net-snmp-libs-5.5-49.el6_5.3.x86_64.rpm ...
net-snmp-5.4.3是Linux环境下的snmp软件,想学习net-snmp内容,必须的软件之一。我的资源中还用MIB查看软件,欢迎下载使用
rehdat el7和centos el7上的net-snmp版本为5.7,不支持snmpv3的AES-192和AES-256,net-snmp 5.8版本才支持,所以编译成rpm包。 先安装一些依赖: yum install -y perl-devel perl-ExtUtils-Embed elfutils-devel ...
net-snmp-5.7.0-1.x86.exe 客户端windows。
net-snmp所需的安装补丁包,NETSNMP程序补丁包net-snmp-devel-5.3.2.2-14.el5.x86_64.rpm
SNMP安装包-net-snmp-utils-5.7.2-49.el7_9.2.x86_64
net-snmp源码5.9.1
NET-SNMP工具的使用 当环境设置好后,运行snmpd,即snmp代理进程,就可以使用管理工具查询其中的信息了。
windows 7 x64下面的 net-snmp 安装包。可以再命令行下使用snmp命令。
net-snmp-5.9.1.tar.gz,可移植,开发学习
windows x64下面的 net-snmp 安装包。可以再命令行下使用snmp命令。 如果安装在自定义的位置,需要将路径添加到系统环境变量Path中
net-snmp-5.7.3的tar包(源码包),可直接编译安装(内附安装说明),同时内附gcc编译工具的rpm包,执行里边的install.sh即可安装
net-snmp-x86_64组包,包含net-snmp-5.3.2.2-20.el5.x86_64.rpm net-snmp-libs-5.3.2.2-20.el5.x86_64.rpm net-snmp-perl-5.3.2.2-20.el5.x86_64.rpm net-snmp-utils-5.3.2.2-20.el5.x86_64.rpm
cacti安装所需安装包之一 net-snmp-5.7.2.tar.gz
netsnmp程序补丁包net-snmp-utils-5.3.2.2-14.el5.x86_64.rpm
lm_sensors-libs-3.1.1-17.el6.x86_64.rpm。net-snmp-5.7.2-37.el7.x86_64.rpm,net-snmp-agent-libs-5.7.2-37.el7.x86_64.rpm,net-snmp-libs-5.7.2-37.el7.x86_64.rpm,net-snmp-utils-5.7.2-37.el7.x86_64.rpm