使用PySNMP收集设备版本信息和系统名字

使用PySNMP收集设备版本信息和系统名字_第1张图片

 

1、NMS和被管理设备之间网络能通

2、被管理设备配置SNMP

snmp-agent sys-info version v3 #配置版本为SNMPv3

snmp-agent group v3 admin privacy read-view rd write-v iew wt notify-view nt #创建用户组

snmp-agent mib-view nt include iso #创建mib视图

snmp-agent mib-view rd include iso

snmp-agent mib-view wt include iso

snmp-agent usm-user v3 admin admin authentication-mode sha HCIP-Datacom privacy-mode aes128 HCIP-Datacom #配置加密密码和认证密码

snmp-agent trap source GigabitEthernet0/0/0 #指定发送Trap的源接口

snmp-agent trap enable #使能SNMP trap

snmp-agent #使能SNMP

3、编写Python获取设备版本信息和设备系统名字

from  pysnmp.hlapi import *
userData = UsmUserData(
    'admin',
    authKey='HCIP-Datacom',
    privKey='HCIP-Datacom',
    authProtocol=usmHMACSHAAuthProtocol,
    privProtocol=usmAesCfb128Protocol
)
g = getCmd(
           SnmpEngine(),
           userData,
           UdpTransportTarget(("10.1.60.50", 161)),
           ContextData(),
          ObjectType(ObjectIdentity('SNMPv2-MIB','sysDescr',0)),
          ObjectType(ObjectIdentity('SNMPv2-MIB','sysName',0)),
        )
errorIndication, errorStatus, errorIndex, varBinds =next(g) 
for i in  varBinds:
    print(i)

输出结果:使用PySNMP收集设备版本信息和系统名字_第2张图片

 代码解释:

from  pysnmp.hlapi import *  

导入Pysnmp.hlapi模块包

userData = UsmUserData(
    'admin',
    authKey='HCIP-Datacom',
    privKey='HCIP-Datacom',
    authProtocol=usmHMACSHAAuthProtocol,
    privProtocol=usmAesCfb128Protocol
)

smUserData为SNMP用户信息,包括SNMP用户名、密码、加密模式和认证模式。请和设备的SNMP配置保持一致。

g = getCmd(
           SnmpEngine(),
           userData,
           UdpTransportTarget(("10.1.60.50", 161)),
           ContextData(),
          ObjectType(ObjectIdentity('SNMPv2-MIB','sysDescr',0)),
          ObjectType(ObjectIdentity('SNMPv2-MIB','sysName',0)),
        )

调用getCmd()实现SNMP的GET操作

UdpTransportTarget为传输层信息

ContextData用于异步模式下,这里保持为空。

ObjectType为查询的设备MIB对象。可以使用对象名称,也可以使用OID。这里使用的对象名称做实验

MID名称查找方法:

1、打开产品文档:

使用PySNMP收集设备版本信息和系统名字_第3张图片

 2、搜索“RFC1213-MIB

使用PySNMP收集设备版本信息和系统名字_第4张图片

 3、并打开单节点信息描述

使用PySNMP收集设备版本信息和系统名字_第5张图片

 4、使用OID或者名字去trap被管理的设备查询系统名称和版本信息

使用PySNMP收集设备版本信息和系统名字_第6张图片

 

 

你可能感兴趣的:(网络,python,运维)