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)
代码解释:
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、打开产品文档:
2、搜索“RFC1213-MIB
3、并打开单节点信息描述
4、使用OID或者名字去trap被管理的设备查询系统名称和版本信息