问题标签 [net-snmp]
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.
c++ - SNMP 类型 Unsigned32 的正确编码是什么?
我正在编写一个 SNMP 代理,并且 MIB 定义包括一个 Unsigned32 类型的 OID。
代理的 Unix 实现使用 Net-SNMP 并将 OID 设置为 ASN_UNSIGNED 类型,因为它没有 ASN_UNSIGNED32。当我使用 Wireshark 查看 GET 响应时,它会将其解码为“Gauge32”值。乍一看,这是有道理的,因为根据 RFC 1902,Unsigned32 和 Gauge32 是相同的。
Windows 实现基于 Windows 的 SnmpAPI.lib 并将 OID 设置为 ASN_UNSIGNED32,当我使用 Wireshark 查看 GET 响应时,它会将其解码为“Unsigned32”。这对我来说看起来更好。
为什么这两种实现会在电线上产生不同的结果?
哪个是正确的版本,我怎样才能设法从两个实现中获得相同的版本?
snmp - 我们如何将 OID 的数字形式更改为人类可读的形式
我们如何将私有 MIB OID 的数字形式更改为人类可读的形式
performance - 从不同计算机查询时 SNMP 性能发生变化
我正在从事一个当然涉及SNMP的审计项目。在查询不同的设备时,我注意到从两台不同的计算机查询机器时存在巨大的性能差异。让我们举个例子。当我从 Debian snmpwalk查询我的 Cisco 2960G 交换机时,它真的很慢,慢的意思是每次获取都需要几秒钟才能完成。而使用 SUSE Enterprise,snmpwalk会像往常一样快速,并且get操作几乎是即时的。Debian 运行 NET-SNMP 5.4.3,而 SUSE 运行 NET-SNMP 5.4.2.1。请注意,这种性能差异仅发生在某些设备上,例如 Cisco 交换机和某些打印机(通常是 Lexmark)。造成这种巨大差距的原因是什么?
编辑:我刚刚将 Debian 上的 NET-SNMP 更新到5.7.2版,但性能和以前一样慢。
perl - 使用 Perl 的 Net::SNMP 发送陷阱
我正在尝试将陷阱作为更大 Perl 脚本的一部分发送。我已将陷阱发送代码复制到另一个文件,并自行运行它。代码似乎认为陷阱发送成功,但我在运行陷阱侦听器的任何一台机器上都没有看到陷阱。
这是代码:
编辑:添加了 $sess->debug(255) 调用,这是输出:
编辑:运行陷阱侦听器的任何人都可以在他们的机器上尝试此代码并让我知道它是否有效吗?
编辑:从我的 MBP 中尝试过。结果相同。然后注意到调试信息说它正在发送到端口 161。强制-port => 162
参数,它可以工作。这给我留下了几个问题:
- 为什么陷阱发送者默认为 161?
当我在调试时运行时出现此错误。这是什么意思?
错误:[97] Net::SNMP::Transport::IPv4::UDP::agent_addr():断开连接失败:协议族不支持地址族
snmp - 如何使用 mib2c 命令?
实际上,我正在尝试通过给定 sysSwYear 作为 MIBNODE 生成 .h 和 .c 文件,并且我正在使用以下命令:
但它会产生以下错误:
您一开始没有给 mib2c 一个有效的 OID。IE,我找不到有关 mib 节点“sysSwYear.0”的任何信息。这可能是因为您提供了不正确的节点,或者您尝试从中生成代码的 MIB 未加载。要确保您的 mib 已加载,请使用以下示例运行 mib2c:
您可能希望从阅读 MIB 加载教程开始:
http://www.net-snmp.org/tutorial-5/commands/mib-options.html
并确保您可以获得 snmptranslate 以显示有关您的 MIB 节点的信息。一旦 snmptranslate 工作,然后回来并再次尝试 mib2c。
我已经完成了所需的一切,例如为 MIB 设置环境变量并在 /usr/share/snmp/mibs 中定义一个私有 MIB 文件……但仍然没有成功。该怎么办?
linux - SNMP V3 的 Perl 不工作,但与 SNMP V1/2 (Redhat Linux) 一起工作
我有一个注册 SNMP OID 的 Perl 脚本。使用 SNMP 1/2c,它能够成功注册所有 OID。但是,使用 SNMP V3,它只能部分工作。
如下所示,使用 SNMP V3,它能够成功注册“$root_OID.0.0.0”。但是,当尝试调用“$root_OID.0.0.1”的 java 代码时,它会超时。
有谁知道,为什么我能够在 SNMP V1/2c 中成功调用 java,但不能在 SNMP V3 中调用?
非常感谢
这是我的 Perl 脚本:
这是我的 /etc/snmp/snmpd.conf 文件(SNMP V1/2c 禁用):
这是使用 SNMPV3 时我的 SNMPWALK 的结果。
snmp - 预期的“(”(_):在 /usr/share/snmp/mibs/ZYXEL-ES2108G-MIB.txt 中的第 939 行
运行 snmptranslate -IR sysSwYear 时出错
*预期的 "(" (_): 在 /usr/share/snmp/mibs/ZYXEL-ES2108G-MIB.txt 的第 939 行 应该是 ACCESS (to): 在 /usr/share/snmp/mibs/ZYXEL 的第 939 行-ES2108G-MIB.txt OBJECT-TYPE 解析错误:/usr/share/snmp/mibs/ZYXEL-ES2108G-MIB.txt 中的第 939 行未知对象标识符:sysSwYear....*
这是什么原因???请帮帮我
snmp - 网络流量的 SNMP OID
我正在编写一个脚本,该脚本将监视来自 nagios 的特定主机上的流量。我研究了一些已经制作的脚本,并收集了几乎所有我需要做的信息,但我在识别流量所需的 OID 时遇到了问题。我想使用IF-MIB::ifOutOctets.1
并IF-MIB::ifInOctets.1
获取传入和传出流量,但是当我使用以下行进行测试时:
我对两个 OID 都得到了相同的结果,但这似乎不正确。如果有其他变量我可以尝试而不是我现在使用的变量,我会徘徊。
即使您可以指出我在哪里可以IF-MIB
找到snmpwalk
有关
python - ctypes netsnmp 与多处理
我希望有人可以帮助...
所以......我正在编写一个multiprocessing
基于python的netsnmp
轮询器(我在收集数据后做了很多数据结构操作,所以开销比正常情况下值得threading
)。我找不到完整的 python 接口(具有不错的 OID 操作、bulkwalk 等),所以我决定纠正我自己的ctypes
绑定。我snmp_sess_synch_response()
用来实际执行查询。
当我运行单个线程时,一切正常(我可以查询并获取结果)。但是当我从继承的Process
实例中调用我的(python)netsnmp 类时;当它到达时snmp_sess_synch_response()
,线程停止,然后返回返回码“2”并snmp_errstring()
返回“未知错误”。
我能找到的唯一信息是我应该使用来自http://net-snmp.sourceforge.net/docs/README.thread.html的单一 API,并且初始 MIB 构建应该在线程之前。我正在使用单一 API,并且在生成我的工人之前我正在构建 MIB。
有谁知道我应该如何进行调试?ctypes如何处理多线程?为什么使用multiprocessing
会导致我工作的单线程轮询器像这样停止?
我在 redhat 6 64 位和 python 2.6.6 上使用 net-snmp 5.5-41.el6。
snmp - 代理文件夹中不存在 mibgroup 文件夹
在将私有 MIB 添加到代理时,我创建了 .c 和 .h 文件,它们应该保存在 agent/mibgroup 文件夹中。但在我的情况下,mibgroup 文件夹不存在,所以我创建了它并将我的 .c 和 .h 文件保存在其中。之后我执行
这给了我这个错误信息:
这意味着配置脚本不存在。我的问题是,我从哪里得到这个脚本或 mibgroup 文件夹来执行?