设为首页 收藏本站
查看: 2769|回复: 0

[经验分享] python net-snmp使用

[复制链接]

尚未签到

发表于 2017-7-8 20:14:27 | 显示全部楼层 |阅读模式
安装
  官网:http://www.net-snmp.org/download.html
  环境: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时才需要。
  参考文档:http://www.ilanni.com/?p=8408

MIB Browser
         iReasoning MIB浏览器是一个强大和易于使用的工具由iReasoning SNMP API提供支持。 MIB浏览器是工程师管理启用SNMP的网络设备和应用程序不可或缺的工具。 它允许用户加载标准的,专有的MIB,甚至一些错误的MIB。 它还允许它们发出SNMP请求以检索代理的数据,或对代理进行更改。 内置陷阱接收器可以根据其规则引擎接收和处理SNMP陷阱。
  下载地址:http://www.ireasoning.com/download.shtml
  安装后界面
   DSC0000.png
  可以通过官网下载MIB库文件,导入ireasoning\mibbrowser\mibs目录下,通过MIB Browser可以查看设备的私有OID
   DSC0001.png

如何获取Cisco设备OID值
  思科的交换机snmp oid信息查询  http://tools.cisco.com/Support/SNMP/do/BrowseOID.do
  1、通过交换机执行命令获取IOS名称,如下图标红的内容
   DSC0002.png
  2、官网页面查询
   DSC0003.png
  3、点击search后弹出新页面,列出这个IOS所有可用的MIB库,如下图
   DSC0004.png
  4、选择自己需要的MIB库,如CISCO环境监视器MIB文件,名称是CISCO-ENVMON-MIB,点击V2
  我需要查看设备的温度值,找到具体的OBJECT-TYPE,如下图的 ciscoEnvMonTemperatureStatusTable
   DSC0005.png
  5、根据ciscoEnvMonTemperatureStatusTable 去官网查询它的OID
   DSC0006.png
  6、根据查询的OID,通过snmpwalk命令进行获取
   DSC0007.png
  7、cpu信息获取
  下表显示他们替换的新的MIB和他们的对象在旧有MIB旁边和对象:
DSC0008.png




    # 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库
  如何下载华为设备MIB  http://support.huawei.com/huaweiconnect/enterprise/thread-228323.html

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()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-391764-1-1.html 上篇帖子: Hydra用户手册 下篇帖子: Keepalive VIP 故障
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表