问题标签 [pysnmp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
764 浏览

python - 解析或拆分 pysnmp 输出以更新到数据库中

我正在尝试将生成的 PYSNMP 数据存储到 mysql 数据库中。

生成的数据是元组还是列表——我不确定。

我得到的输出是 9016,但是当我希望将它保存到数据库时,它类似于(OID(1.3.6.1.1.18443.1.1.), Integer(9016). 在我了解它的打印价值后,我知道了这一点。

我试过了output = re.split(r'', val)。这里val有上面提到的字符串/元组。

在获取整数数据方面需要帮助。

0 投票
2 回答
5567 浏览

python - Python 没有看到已安装的模块 entity.rfc3413.oneliner

提前感谢您的帮助。

这是一个问题,我将模块 pysnmp 与 pyasn1 一起使用,我正在使用此示例: http ://pysnmp.sourceforge.net/quickstart.html ,并收到错误消息:

另一个问题是为什么它指的是entity.rfc3413.oneliner而不是pysnmp.entity.rfc3413.oneliner。另外,我检查了

这些服务器安装了两个版本的 python 一个在 /usr/bin/ 另一个在 /opt,当我这样做时:

我得到:

安装模块:

给出:

0 投票
1 回答
1082 浏览

python - 如何让 pysnmp 使用 pysnmp-mib 进行友好输出?

我是 pysnmp 和 snmp 的新手,我正在尝试获取一个简单的脚本来从我的网络上的两个路由器(Airport Extreme 和 Tomato Firmware 路由器)转储统计信息。

此代码(来自在线示例)有效,但没有友好的名称:

产生这个输出:

我希望产生像 snmpwalk 这样的输出:

我相信这只是使 MIB 正确可用的问题。我已经安装了 pysnmp-mibs,但我还没有弄清楚如何使用它。

0 投票
1 回答
520 浏览

python - pysnmp 轮询 HOST-RESOURCES-MIB 中的特定进程索引

我有以下代码,我一直在使用 pysnmp 进行轮询。到目前为止,它一直用于走路,但我希望能够获得特定的索引。例如我想投票HOST-RESOURCES-MIB::hrSWRunPerfMem.999

我可以使用它来成功取回 hrSWRunPerfMem 中的所有内容getCounter('1.1.1.1', 'public', 'HOST-RESOURCES-MIB', 'hrSWRunPerfMem')

但是,一旦我尝试包含索引号getCounter('1.1.1.1', 'public', 'HOST-RESOURCES-MIB', 'hrSWRunPerfMem', indexNum=999),我总是会得到varBindTable == []

有没有人对如何使用 pysnmp 轮询特定索引有所了解?

0 投票
1 回答
309 浏览

python - cmdGen.nextCmd out of sync

I am trying to retrieve some columns in an snmp table. Depending on the permissions of the agent, sometimes columns are not returned. When that happens, the OID of the next valid response is duplicated in the varBindTable.

Is there any marker or flat that shows that the row does not contain what I requested? My application expects the result to be the same as the input.

How is a programmer supposed to notice that something is wrong with the data.

Lets start with an example: This the high level synchronous version. I am grabbing a table where the number of rows and their indexes are not known in advance.

Lets assume that 1 and 3 exist and 2 does not. Also lets assume that these are part of a table with indexes rows of 10 and 20. What should be in varBindTable?

or

I get the first. It would be nice if I got the second. Whats the point of the duplicate garbage data?

0 投票
3 回答
2516 浏览

python - 无法让 pysnmp 与 pyinstaller 一起使用

试图让 pyinstaller 与 pysnmp 一起工作 这是规范文件

这是程序文件

这是输出。请注意,我向 pysnmp 添加了调试标志以查看发生了什么。由于我可以看到上面列出的目录中的文件,我不明白为什么 pysnmp 看不到它们。

将规范文件修改为 1) 导入 PyInstaller.hooks.hookutils 2) 将隐藏导入从 none 更改为 hiddenimports=PyInstaller.hooks.hookutils.collect_submodules('pysnmp.smi.mibs') 3) 删除 Tree 和 x 变量EXE 类

我的新输出

还不如让你看到存档 ArchiveViewer.py -rl dist/app 的部分内容

0 投票
1 回答
1774 浏览

pysnmp - PYSNMP 停止并重新启动陷阱接收器

我正在尝试创建一个 pysnmp 守护进程。我希望能够启动、停止和重新启动守护程序正在运行的线程。我无法清理套接字、通知接收器和传输调度程序。

我正在使用 pysnmp v1/2c 陷阱接收器

0 投票
3 回答
3447 浏览

pysnmp - pysnmp 将 .mib 转换为 .py 文件

当我使用:

要将 .mib 文件转换为 .py 文件,它会毫无错误地进行转换。当我尝试在 python 上加载文件时,出现以下错误:

错误:

“NameError:名称'MibScalar'未定义

完整错误:

文件“C:\Python27\lib\site-packages\pysnmp\smi\builder.py”,第 259 行,在 loadModules 'MIB 模块 \"%s\" 中加载错误:%s' % (modPath, traceback.format_exception( *sys.exc_info())) SmiError: MIB module "C:\Python27\snmp\MIB\iSCSI_RAID_Rack-1.2.1.pyc" 加载错误: ['Traceback (last last最近调用):\n', ' File " C:\Python27\lib\site-packages\pysnmp\smi\builder.py",第 255 行,在 loadModules\n exec(modData, g)\n', ' 文件 "C:\Python27\snmp\MIB\iSCSI_RAID_Rack -1.2.1.py",第 27 行,在 \n sys_status_temp = MibScalar((1, 3, 6, 1, 4, 1, 22274, 1, 1, 1, 2), DisplayString()).setMaxAccess(" readonly").setLabel("sys-status-temp")\n', "NameError: name 'MibScalar' is not defined\n"]

代码:

0 投票
2 回答
2369 浏览

python - python多处理接收snmp警报

我希望我的代码能够接收 SNMP 警报。我正在使用pysnmppython模块。我正在为陷阱侦听器创建一个新进程。我正在使用multiprocessing模块。陷阱侦听器接收 snmp 警报消息并将其发送到我的主进程,该进程将对它们进行一些计算。但是如何将该消息数据传递给我的父进程?我想创建一个队列。但由于函数正在接收 snmp 数据,cbFun()我不知道如何将其传递给trapReceiver(). 一个简单的返回函数是行不通的。

我想我可以让队列成为一个全局变量。这是一个好主意吗?

我的另一种选择是在我的主进程中写入文件cbFun并从中读取。

解决这个问题的最佳方法是什么?

当我执行下面给出的代码时,子进程正在打印接收到的 snmp 消息,但我无法从父进程打印它。我究竟做错了什么?

0 投票
1 回答
1667 浏览

python - 如何使用 pysnmp 避免高 CPU 使用率

我正在使用pysnmp并遇到高 CPU 使用率。我知道netsnmp它是用 C 和pysnmpPython 编写的,因此我预计 CPU 使用时间会因此提高 20-100%。相反,我看到CPU 使用时间增加了20倍。

pysnmp是否正确使用或者我可以做些什么来减少它使用的资源?

测试用例 1 - PySNMP:

测试用例 2 - NetSNMP:

如果有人想自己测试,两个测试用例都需要一个带有设置的小文件,config.py

我已经比较了返回的值,它们是相同的——所以两个例子都能正常工作。不同之处在于时间:

PySNMP:

网络SNMP:

因此,netsnmp使用0.103 秒的 CPU 时间和pysnmp1.890的 CPU 时间进行相同的操作。我发现结果令人惊讶......我也测试了异步模式,但结果更糟。

我做错了什么(用pysnmp)?

更新:

根据 Ilya 的建议,我尝试使用 BULK 而不是 WALK。BULK 总体上确实快得多,但 PySNMP 仍然使用 cca。与 netsnmp 相比,20 倍的 CPU 时间:

网管:

所以问题仍然存在——我可以让 pySNMP 减少 CPU 密集度吗?我使用不正确吗?