如何在snmp代理端调用mib

如何在snmp代理端调用mib,第1张

SNMP Server 的设定请参考 netman 兄的文件,我巳不能增减其一字

http://www.study-area.org/tips/tipsfr1.htm

SNMP Client 则是本篇的重点, 简单的介绍一下 snmp client 的使用

一般我们大多是使用 snmpget 及 snmpwalk, 但个人较习惯用 snmpwalk + MIBS

的使用方法,这些东西我都是刚学没多久 (从 Google Search 来的),不过我想

在一般的使用上对我应没有什么问题了才是 (下一步学 trap)

snmpget 要指定整个 OID,

snmpwalk 则是指出一个节段,他会帮你走完以下全部的点及值

不过以 OID 的数字机制,简直比 IP 还难背,而 IP 有 DNS 支援解析

相同的 OID 也有 MIBS (Management Information Base) 以名称来表示

只要援用相关设备的 MIBS ,就可以很方便的找到你要的 SNMP 信息

CISCO 的 MIBS 网页

http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml

CISCO MIBS FTP site ftp://ftp.cisco.com/pub/mibs/

(其它厂商我不知道....)

这里有一个很多 System 或 Vendor 的 MIBS 的网页,大家亦可参考看看(很多有用的东西哦)

http://smurfland.cit.buffalo.edu/ftp/pub/mibs/

1. 设定档

Server 端一般的 snmpd.conf 我就不介, 由于敝单位大多使用 CISCO 设备,

所以得先在 Router 或 Switch 开 snmp-server

(开法都很简单 snmp-server ....,所以我就不多言了,但一定要设 Access Control,

也要注意你的 IOS 版本是否有 SNMP 漏洞的问题)

一般 Vendor 设备开 snmp 起来时,其也会 load MIBS 进入系统,所以也可使用相关的指

令查到其 MIBS 或 OID

那 Client 端要怎么设才能抓到设备或远程的 SNMP 数据呢 ?

本处我仅介绍使用 MIBS 的方法, 不用 MIBS 实在太不人道了

下列例子我皆以 CISCO 2950 为例

方法一:

环境变量(目录,及那一个 MIBS file,不要加最后的 .my :

$>export MIBDIRS=/usr/share/snmp/mibs

$>export MIBS=CISCO-C2900-MIB

MIBS 除了装 SNMP 套件时会少量附一些外,其它你需要的可能都是要到 Vendor 处下载,

若要使用全的的 MIBS 的话可以将 CISCO-C2900-MIB 换成 ALL, 如果你的 MIBS file 不多

的话倒还无所课,但很多的话不建议你如此做,要使用多个 MIBS ,则可以

$>export MIBS=CISCO-C2900-MIB:UDP-MIB:TCP-MIB

来使用,

设定档 /etc/snmp/snmp.conf (系统 snmp 定义,没有 d 哦) ~/.snmp/snmp.conf (User)

内容很多,可参考 man page, 而我个人大概仅使用下列项目

#/etc/snmp/snmp.conf

mibdirs /usr/share/snmp/mibs/

mibs CISCO-C2900-MIB:TCP-MIB:UDP-MIB

defVersion 2c

defCommunity Public

#(def 这两行不写在 snmpwalk/snmpget 上要打 snmp???? -v 2c IP Public OID

上两行同上变量意义,第三行为 snmp version, 需与 sever 端配合,不过现在大概多是 2c 版

最后一个 Community 大家习惯设 Public, 如果可以的话建议你换成一个只有你知道的名称

(指 SNMP Server 的 Community , snmp.conf 这里要配合 Server 端)

2. 指令

我只介绍有 MIBS 的状况,不然这个数字 1.1.0 可是很长的,CISCO 设备描述):

snmpget 一次只能抓一个哦~目标明确时使用

$>snmpget My_2900_IP 1.1.0

system.sysDescr.0 = Cisco Internetwork Operating System Software ...后略

$>snmpget My_2900_IP sysDescr.0

system.sysDescr.0 = Cisco Internetwork Operating System Software ...后略

snmpwalk 取得该位置以下所有的节点,用 MIBS 是不是很清楚呢 ? 不需要考虑其 OID 为何

只要 MIBS 用对了即可

$>snmpwalk My_2900_IP tcp

tcp.tcpRtoAlgorithm.0 = vanj(4)

tcp.tcpRtoMin.0 = 300

tcp.tcpRtoMax.0 = 60000

tcp.tcpMaxConn.0 = -1

tcp.tcpActiveOpens.0 = Counter32: 1

tcp.tcpPassiveOpens.0 = Counter32: 29

tcp.tcpAttemptFails.0 = Counter32: 0

tcp.tcpEstabResets.0 = Counter32: 1

tcp.tcpCurrEstab.0 = Gauge32: 0

tcp.tcpInSegs.0 = Counter32: 10183

tcp.tcpOutSegs.0 = Counter32: 6850

tcp.tcpRetransSegs.0 = Counter32: 55

tcp.tcpInErrs.0 = Counter32: 0

tcp.tcpOutRsts.0 = Counter32: 9

$>snmpwalk My_2900_IP IfInOctets

interfaces.ifTable.ifEntry.ifInOctets.1 = Counter32: 266156610

interfaces.ifTable.ifEntry.ifInOctets.2 = Counter32: 4021982

interfaces.ifTable.ifEntry.ifInOctets.3 = Counter32: 3675832515

interfaces.ifTable.ifEntry.ifInOctets.4 = Counter32: 242336

interfaces.ifTable.ifEntry.ifInOctets.5 = Counter32: 2555185044

interfaces.ifTable.ifEntry.ifInOctets.6 = Counter32: 1611529637

interfaces.ifTable.ifEntry.ifInOctets.7 = Counter32: 2376795729

...后略....

Counter32 是 32bit 的累计值

Gauge32 是 32bit 的差异值

如果 .1 的Counter值依四次 timestamp 分原是 1 5 6 9

则其 Gauge 值则为 1 4 1 3

这个值的 TYPE 对画 mrtg 是有些影响的

如果想对 MIBS 熟一点可以找一个叫 MIBBroswer 的软件 (我没用过),相信对 SNMP

的管控可以更清楚明了,MIBS file 内基本上即会有每个定义的解释,多看几遍就知

道他的语法了

要取一个值或取多个值完全看个人需要,再根据值来画图即可

用这套方法,加上 RRD (或 mrtg+rrd 即可画出每个 Switch port 的流量(下例是有接线我的才画,没接的就不画,有没有接可用 snmp 抓到,本例我将 IP 拿掉了)

MIB库和OID不能混淆。 看SNMP的资料先。 用mibbrower导入思科mib库,印象中思科的mib库默认就有。 用mibbwower或其他snmp工具 walk一遍,oid和值都出来了,或者get next慢慢来也行。 注意snmp版本,目前常用v2c和v3

PySNMP是一种跨平台的纯 Python SNMP 引擎实现。它具有功能齐全的SNMP引擎,能够以代理/管理器/代理角色运行,通过IPv4 / IPv6和其他网络传输来讨论SNMP v1 / v2c / v3协议版本。

尽管它的名字,SNMP并不是一个简单的协议。例如,它的第三个版本引入了复杂的开放式安全框架,多语言功能,远程配置和其他功能。PySNMP实施紧密遵循复杂的系统细节和功能,为用户带来最大的功能和灵活性。

———— pysnmp官网

这将导出一个名为的新文件 MY-MIB.py 。如果要查询我们的代理,您需要将MIB的副本添加到 net-snmp搜索MIB的位置我添加了MY-MIB文件 /usr/lib/python2.7/site-packages/pysnmp/smi/mibs

启动

测试


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11382126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存