python netsnmp_python net-snmp使用

安装

环境:CentOS 6.6 + python 2.7.10

1、下载安装包 net-snmp-5.6.2.1.tar.gz,并编译安装

tar -xvf net-snmp-5.6.2.1.tar.gz

cd net-snmp-5.6.2.1

/configure --with-python-modules --prefix=/usr/local/net-snmp --enable-developer --libdir=/usr/lib64 --enable-shared

make

make install

2、安装netsnmp python库

cd net-snmp-5.6.2.1/python

python setup.py install

3、测试

import netsnmp

snmpwalk

snmpwalk是SNMP的一个工具,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。通过snmpwalk也可以查看支持SNMP协议(可网管)的设备的一些其他信息,比如cisco交换机或路由器IP地址、内存使用率等,也可用来协助开发SNMP功能。

snmpwalk没有单独的安装包,它被包含在net-snmp软件包中的,所以我们只需要安装net-snmp软件包就可以得到snmpwalk。

snmpwalk使用方法:

snmpwalk -v 1或2c(代表SNMP版本) -c SNMP密码 IP地址 OID(对象标示符)

–v:指定snmp的版本, 1或者2,该参数必须有。

–c:指定连接设备SNMP读密码,该参数必须有。

IP:指定要walk的设备的IP地址,该参数必须有。

OID:代表要获取设备的指标oid,该参数不是必须的。

重要参数介绍:

–h:显示帮助。

–v:指定snmp的版本, 1或者2c或者3。

–c:指定连接设备SNMP密码。

–V:显示当前snmpwalk命令行版本。

–r:指定重试次数,默认为0次。

–t:指定每次请求的等待超时时间,单为秒,默认为3秒。

–l:指定安全级别:noAuthNoPriv|authNoPriv|authPriv。

–a:验证协议:MD5|SHA。只有-l指定为authNoPriv或authPriv时才需要。

–A:验证字符串。只有-l指定为authNoPriv或authPriv时才需要。

–x:加密协议:DES。只有-l指定为authPriv时才需要。

–X:加密字符串。只有-l指定为authPriv时才需要。

MIB Browser

iReasoning MIB浏览器是一个强大和易于使用的工具由iReasoning SNMP API提供支持。 MIB浏览器是工程师管理启用SNMP的网络设备和应用程序不可或缺的工具。 它允许用户加载标准的,专有的MIB,甚至一些错误的MIB。 它还允许它们发出SNMP请求以检索代理的数据,或对代理进行更改。 内置陷阱接收器可以根据其规则引擎接收和处理SNMP陷阱。

安装后界面

可以通过官网下载MIB库文件,导入ireasoning\mibbrowser\mibs目录下,通过MIB Browser可以查看设备的私有OID

如何获取Cisco设备OID值

1、通过交换机执行命令获取IOS名称,如下图标红的内容

2、官网页面查询

3、点击search后弹出新页面,列出这个IOS所有可用的MIB库,如下图

4、选择自己需要的MIB库,如CISCO环境监视器MIB文件,名称是CISCO-ENVMON-MIB,点击V2

我需要查看设备的温度值,找到具体的OBJECT-TYPE,如下图的 ciscoEnvMonTemperatureStatusTable

5、根据ciscoEnvMonTemperatureStatusTable 去官网查询它的OID

6、根据查询的OID,通过snmpwalk命令进行获取

7、cpu信息获取

下表显示他们替换的新的MIB和他们的对象在旧有MIB旁边和对象:

# sysDescr CSICO-3560 系统信息

# ifNumber CSICO-3560 接口总数

# ifTable CSICO-3560 接口详细信息

# .1.3.6.1.4.1.9.9.13.1.3.1.3 CSICO-3560 温度

# .1.3.6.1.4.1.9.9.13.1.4.1.3 CSICO-3560 风扇状态

# .1.3.6.1.4.1.9.9.13.1.5.1.3 CSICO-3560 电源状态

# 1.3.6.1.4.1.9.9.48.1.1.1.1 CSICO-3560内存池名称,有多个,如Processor、I/O、Driver

# 1.3.6.1.4.1.9.9.48.1.1.1.5 CSICO-3560内存池使用

# 1.3.6.1.4.1.9.9.48.1.1.1.6 CSICO-3560内存池空闲,内存池总大小=使用+空闲

华为MIB库

python代码实现获取snmp信息

# -*- coding: utf-8 -*-

import netsnmp

class SnmpClass(object):

"""

SNMP

"""

def __init__(self, oid="sysDescr", version=1, destHost="localhost", community="public"):

self.oid = oid

self.version = version

self.destHost = destHost

self.community = community

@property

def query(self):

"""

snmpwalk

"""

try:

result = netsnmp.snmpwalk(self.oid,

Version=self.version,

DestHost=self.destHost,

Community=self.community)

except Exception, err:

print err

result = None

return result

def main():

test_obj = SnmpClass(oid="ifIndex", destHost="192.168.137.11")

print test_obj.query

if __name__ == '__main__':

main()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值