问题标签 [easysnmp]
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.
python - 通过 pip [Python] 安装 easysnmp 时出错
这里是一个完整的初学者。
我一直在尝试为python安装easysnmp库,我遇到了各种神秘的c编译器相关的错误,我已经解决了大部分,但是我遇到了一个我不知道的错误如何解决:(对不起,巨大的错误信息)
我不完全确定错误是与 c 编译器相关还是与库本身有关,或者可能介于两者之间,我真的可以使用一些帮助。
提前致谢
python - easysnmp 库不适用于 el-capitan
我正在运行 OSX ElCapitan 并且我已经 brew install easysnmp ......但是,当我尝试在 python 上导入它时,我收到以下错误:
easysnmp 站点声明它需要 net-snmp 5.7,尽管 el capitan 附带 5.6 ......所以我已经“安装了 brew”snmp-get 5.7。
Brew 不会更改符号链接,所以我假设 python 仍在查看 5.6 版。
安装输出:
windows - python easysnmp packge安装错误窗口..失败,退出状态2
我需要使用 snmp 从我的设备中获取一些信息(端口统计信息、端口描述等),但我正在努力解决一些我没有找到任何答案的包安装错误我正在使用 Windows 10 64 位机器并尝试安装easysnmp
包,但我得到以下输出:
python - Python - 带有 netsnmp / easysnmp 的动态 mib
因此,我正在尝试构建一个 SNMP 轮询服务来从我的网络设备中获取一些库存数据。我可以使用 netsnmp 或 easysnmp 模块连接到设备。
当我尝试更改用于查询某些更特定于企业的内容(例如 Force10 网络设备的“chStackUnitTable”)的 MIB 时,问题就出现了。
由于在查询设备的 sysObjectId.0 oid 之前我不能说要加载哪个 mib,所以我必须先查询设备,然后告诉 net-snmp 绑定(netsnmp 和 easysnmp 都依赖)在特定目录中查找,通过设置os.environ['MIBDIRS']
变量。
问题似乎是 net-snmp 绑定在使用这些绑定的第一个方法调用之后忽略了对 MIBDIRS 环境变量的更改。
例子
不工作,但我想要的订单
使用 Force10 S3048-ON 开关的示例:
工作但很糟糕
但是,如果我在调用 netsnmp 绑定之前添加 MIBDIRS 环境变量,它会起作用:
这个解决方案的问题是可扩展性。我计划支持许多不同的设备,并且每个制造商都需要一个 MIB 目录。这意味着 MIBDIRS 和 MIB 搜索路径将变得非常不实用。更不用说 net-snmp 绑定可能会在某个阶段消失,因为它必须搜索潜在的数千个 MIB 文件。
有没有办法在第一次 snmp 查询完成后清除绑定,设置 MIBDIRS 变量,然后重新导入 netsnmp 模块?我试过使用reload(netsnmp)
,但这似乎不起作用。
所需的类似代码的文本
理想情况下,是这样的:
python - Python3 centos/amazon AMI - 安装 net-snmp / easysnmp - gcc 错误
使用 python 和 AWS AMI 映像(松散地基于 REHL/Centos)通过 pip3 安装时出现以下错误
这对我来说看起来像是依赖项,但我已经搜索到谷歌的尽头,我看起来已经安装了所有需要的东西。
谁能看到我是否缺少依赖项?
到目前为止,依赖项安装如下: -
这是安装easysnmp的输出
当我安装 net-snmp
python-3.x - 使用 Python3 easysnmp 模块时未翻译 SNMP sysObjectID
sysObjectID
当我使用模块查询 SNMP 时easysnmp
,返回值是数字表示法:
但是,这似乎不是因为easysnmp
无法找到正确的 MIB 文件。当我将上面的命令放入一个文件并使用 执行它时strace
,会访问正确的 MIB:
我可以使用以下命令仔细检查snmpget
:
不过,为了确定起见,我将os.environ['MIBDIRS']
,os.environ['MIBS']
和设置os.environ['PREFIX']
为与执行命令时看到的相同的值snmpget -Dinit_mib -m ALL -v 2c -c public r1 sysObjectID.0
,但这也无济于事。
什么可能导致这种情况?
python - 使用 python easysnmp 捕获异常
我似乎找不到有关如何使用 Python 的 easySNMP 库捕获异常的文档或示例
https://easysnmp.readthedocs.io/en/latest/exceptions.html显示引发了哪些异常,但在尝试捕获它们时出现错误
简化代码:
输出:
python - 从具有三个库的 OID 读取 SNMP 会给出不同的执行时间
我已经习惯easysnmp
阅读 SNMP OID,但我pysnmp
现在选择了库,因为easysnmp
不支持Python3asyncio
中的架构。
考虑的问题是,pysnmp
它比其他库太慢:
pysnmp:
出去:
简单的snmp
出去:
gosnmp
出去:
快 30 倍于pysnmp
我需要在Python3go-routine
中填充的异步性能。asyncio
那么,这是否意味着我应该从 迁移pysnmp
到gosnmp
?
python - easysnmp 停止为单个 IP 地址工作
我有一个脚本,它使用 easysnmp get 和 bulkwalk 模块来收集设备上所有 IP 地址的列表,并将它们添加到字典中以进行进一步处理。问题发生在特定的 IP 地址上,而问题似乎不在于终端主机本身。
从一个 python shell 的全新开始,我可以对一个有问题的 IP 进行批量遍历:
如果我只针对这个单个节点运行我的函数,它就可以工作。这是功能:
这是针对字典中的单个主机运行的函数:
这是字典中的完整节点集,当函数针对完整集运行时,'host80.foo.com' 失败:
现在,如果我尝试单独运行 bulkwalk 请求,它将不再有效:
如果我退出解释器并重新做一遍,结果总是一样的。我还可以在另一个 python shell 中运行独立的 bulkrequest,它工作正常。
我的防火墙上的数据包捕获显示正在发送到设备的请求,但设备发送报告响应而不是获取响应。在有效的会话和无效的会话之间,get 请求和 getbulkrequests 之间似乎没有任何区别。我愿意接受这个问题可能与防火墙有关,但是什么,特别是因为 bulkrequest 同时在另一个 shell 中工作正常?此外,为什么它自己工作,而不是每次针对表中的所有主机运行该函数时?
我尝试一次添加一个导入的模块,以查看这方面是否发生了某些事情,但是在针对字典中的其他主机运行该函数并且无法正常工作之前,我从来没有失败过之后在同一个壳里。
python - 如何修复“没有名为'easysnmp'的模块”
当我尝试运行代码时。我收到一个错误。
错误是
注意:我收到上述错误。尽管如此,我已经安装了 easysnmp 模块。
代码是