php导入mib表,导入mib库并获取负载均衡F5的Mib信息

按以下方法将F5的mib库mibs_f5.tar.gz 解压后的文件放到snmpd服务器的mib库目录,重启服务 service snmpd restart即可。

495404de77577798bc41c05ce32a6f08.png

验证成功:

snmpwalk -c public -v 2c 123.123.123.123 F5-BIGIP-LOCAL-MIB::ltmVirtualServVaName

参考:

Management Information Base(管理信息库,MIB)是一组对象,定义可对某个设备提出的查询。

我们所 用的snmp监控主机如果要轮询一个支持snmp的设备的某项数据,它必须发出被查询设备所能理解的查询命令,这个就需要监控主机载入被查询设备对应的 MIB,这个MIB将通知snmp监控主机有关由 MIB 模块化的数据的布局和组成。

Linux 中所使用的net-snmp自带了一些标准的MIB,但是世界上支持snmp的设备有无数种,各厂家都有自己的定义,这些定义不可能都包含在net- snmp自带的MIB中,因此,想要正确轮询一个这样的设备,必须载入厂家自己的MIB文件。

一般 我们下载回来的MIB文件可能后缀名为.mib,为了清晰起见,一般改成 MIB_NAME.txt 这样的形式,当然不改也可以,这个MIB文件叫什么名字无关紧要。

系统要载入一个MIB文 件,net-snmp必须知道从哪里载入。默认情况下是下边两个目录:

1.  $HOME/.snmp/mibs

2. /usr/local/share/snmp/mibs

不过也有些发行版会改变这个默认路径,那么可以用下边两种方法之一获取它 所使用的路径。

1.如果系统安装了net-snmp-config:   net-snmp-config --default-mibdirs

2.如果未安装net-snmp-config:   snmptranslate -Dinit_mib .1.3 2>&1 |grep MIBDIR

一般来说MIB文件是一个纯文本文件,我们打开这个 文件查看,找到第一个包含 DEFINITIONS 的行

例如/usr/share /snmp/mibs/IP-MIB.txt 中包含如下一行

IP-MIB DEFINITIONS ::= BEGIN

这个DEFINITIONS关键字前边的 "IP-MIB" 就是系统在调用这个MIB文件时所使用的Module名称,这个很重要。

网上有一些文档说增加一个 新的mib文件就是把mib文件复制到'/usr/share/snmp/mibs/'中就可以了,其实这是不对的!

首先,我们要将下载到的MIB文件复制到前边所说的两个默认路径中的一个里

但是光复制过去还不能生效,net-snmp是不会自动加载所有在/usr/share/snmp/mibs/目录中的mib文件 的!

如果不能正确加载mib文件的话,就会出现 "Unknown Object Identifier" 这样的错误。

如果要net-snmp自动加载我们下载的 新MIB文件,有两种方法:

方法一: 放到snmp.conf中。

用 net-snmp-config --snmpconfpath可以确定snmp.conf文件的位置

[root@Kickstart-O ~]# net-snmp-config --snmpconfpath

/etc/snmp:/usr/share/snmp:/usr/lib/snmp:/root/.snmp:/var/net-snmp

将 所要加载的MIB的Module名称加到snmp.conf中,如下例:

mibs +CISCO-RHINO-MIB

mibs +SOME-OTHER-SPIFFY-MIB

如果图省事也可以这样,当然我们不建议这样。

mibs +ALL

因为这样有可能会提示如下错误

% snmpwalk -v2c public 192.168.1.100

Warning: Module MAU-MIB was in /usr/share/snmp/mibs//DOT3-MAU-MIB.txt now is /usr/share/snmp/mibs//RFC2668-MIB.txt

Warning: Module DISMAN-EVENT-MIB was in /usr/share/snmp/mibs//EVENT-MIB.txt now is /usr/share/snmp/mibs//DISMAN-EVENT-MIB.txt

Warning: Module P-BRIDGE-MIB was in /usr/share/snmp/mibs//P-BRIDGE-MIB.txt now is /usr/share/snmp/mibs//P-BRIDGE.txt

可以将标准错误文件转向来屏蔽这些警告信息

% snmpwalk -v2c public 192.168.1.100 2>/dev/null

SNMPv2-MIB::sysDescr.0 = STRING: Linux server1 2.4.34-pre2 #170 Fri Sep 15 20:10:21 CEST 2006 mips

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-TC::linux

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (706980) 1:57:49.80

方法二: 使用系统变量

MIBS=+CISCO-RHINO-MIB:SOME-OTHER-SPIFFY-MIB

export MIBS

通过上述两种方法之一,net-snmp就可以正确加载我们的新MIB文件,使用snmpget也就可以轮询到新MIB文件中所定义 的OID了。

# 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,使用'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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值