我一直在尝试使用PySNMP库创建一个陷阱侦听器,该侦听器应该加载一个自定义MIB文件(已经为PySNMP编译过,以便与一起使用)MIB转储.py),并以字段名=值的可读格式打印接收到的陷阱。你知道吗
但是,代码无法找到MIB文件并返回错误:
pysnmp.smi.error.MibNotFoundError: MIB file "BMC-CONTROLMEM-MIB.py[co]" not found in search path (DirMibSource('/home/ign
asi/Workspace/trap-endpoint/.venv/lib/python3.7/site-packages/pysnmp/smi/mibs'),
DirMibSource('/home/ignasi/Workspace/trap-endpoint/.venv/lib/python3.7/site-packages/pysnmp/smi/mibs/instances'),
DirMibSource('/home/ignasi/Workspace/trap-endpo
int/.venv/lib/python3.7/site-packages/pysnmp_mibs'),
DirMibSource('/home/ignasi/.pysnmp/mibs'),
DirMibSource('python_packaged_mibs'),
DirMibSource('/home/ignasi/.pysnmp/mibs'))
我从以下示例(this)开始,但是当我指向我的MIB时:
for (errorIndication,
errorStatus,
errorIndex,
varBinds) in bulkCmd(SnmpEngine(),
UsmUserData('usr-none-none'),
UdpTransportTarget(('localhost', 5000)),
ContextData(),
0, 50,
ObjectType(
ObjectIdentity('BMC-CONTROLMEM-MIB', 'controlmAlert').addMibSource('/home/ignasi/.pysnmp/mibs').addMibSource('python_packaged_mibs')
),
lexicographicMode=False):
它返回那个错误。你知道吗
我尝试列出所有路径,如here所述,并将MIB复制到所有文件夹,但没有成功。你知道吗
我也读过this的文章,不知道如何在/instances文件夹中生成前缀为“uuuuu”的MIB。你知道吗
最后,我不明白为什么要搜索一个.py[co]文件,是不是也必须编译?你知道吗
...modName and modName + "***.py[co]***", ', '.join([str(x) for x in self.__mibSources]))
pysnmp.smi.error.MibNotFoundError: MIB file "BMC-CONTROLMEM-MIB.***py[co]***"
我错过什么了吗?你知道吗
谢谢。你知道吗
您不需要显式地编译mib—这将在幕后发生。你知道吗
如果您正在构建一个陷阱侦听器(通知接收器),那么您将获得它接收到的变量绑定。我猜在这一点上,您应该遍历它们并针对MIB进行解析,如this:
在解析varBinds之前,您可能需要pre-load the MIBs您想要接收的oid。在此之前,您可能希望point pysnmp到一个包含所有这些mib及其依赖项的位置。你知道吗
相关问题 更多 >
编程相关推荐