问题标签 [gosnmp]

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 回答
227 浏览

go - Object name instead of OID in GoSNMP

Is it possible to return Object name instead of OID using gosnmp

For eg:

Instead of

How can i get:

0 投票
1 回答
2317 浏览

datetime - 在 GoLang 中将 datetime OctetString 转换为人类可读的字符串

如何将日期时间八进制字符串转换为 ASCII。我通读了python netsnmp中的一个示例,但仍然无法解决它。

这是我从gosnmp收到的[]uint8

或值的 Go 语法表示

日期时间的输出应该是这样的:

这是 mibs:oid:HOST-RESOURCES-MIB::hrSWInstalledDate

有人可以给我一些关于如何使用二进制将其解码为人类可读的 ascii 或字符串的想法。

0 投票
1 回答
734 浏览

go - gosnmp 从 SNMP PDU 获取八位字节串

我正在尝试OctetString从包返回的 SNMP PDU 中获取值gosnmp。甚至字节就足够了。

这是我的代码:

当我使用该MapBPIIfindex方法时,我得到以下输出:

现在,这应该包含一个OctetString. uint8 字节应解码为Fa0/1,但我无法做到这一点。

当我更改log.Println(p.Value)为 时log.Println(p.Value.([]uint8)),我收到以下错误:

我怎样才能得到这个值?文档对此并不十分清楚。

0 投票
1 回答
1564 浏览

python - 从具有三个库的 OID 读取 SNMP 会给出不同的执行时间

我已经习惯easysnmp阅读 SNMP OID,但我pysnmp现在选择了库,因为easysnmp不支持Python3asyncio中的架构。

考虑的问题是,pysnmp它比其他库太慢:

pysnmp:

出去:


简单的snmp

出去:


gosnmp

出去:

快 30 倍于pysnmp


我需要在Python3go-routine中填充的异步性能。asyncio

那么,这是否意味着我应该从 迁移pysnmpgosnmp

0 投票
1 回答
84 浏览

go - 创建用于解组以下 yaml 文件的 go 结构的更好方法是什么?

我正在解组一个 yaml 文件snmp.yml。我想知道是否可以就创建更好的结构获得建议。这就是我现在所拥有的,但我猜我为 Metric 创建的结构很好,但 SNMPyaml 需要更好的重组才能完全能够正确使用未编组的数据。

非常感谢这里的任何建议/反馈。先感谢您!

我得到的错误是:

0 投票
0 回答
139 浏览

go - 将 SNMP 八位字节字符串转换为 golang 中的文本约定

我正在使用 gosnmp 包从节点获取 SNMP 值。返回的值是十六进制字符串。如何使用 MIB 中指定的显示提示和文本约定将其转换为显示字符串。

有可用的 MIB 解析器,但他们会将 OID 转换为文本名称,这不是我的要求。

例如https://www.rfc-editor.org/rfc/rfc2579定义

现在,如果我们将十六进制字符串转换为 ascii,因为ifPhysicalAddress它的形式是,XXXXXXXXXXXX但如果我们应用 DISPLAY-HINT,它会变成XX:XX:XX:XX:XX:XX

我们可以根据具体情况进行处理,但是否有一个库或其他东西可以读取 MIB 并返回显示字符串。

0 投票
2 回答
78 浏览

go - 为什么使用 gosnmp 发出的 snmpwalk 请求会在 29 秒后超时?

我正在使用 gosnmp 遍历 snmp 接口表,1.3.6.1.2.1.2.2.1 和 1.3.6.1.2.1.31.1.1.1。完成此任务所需的时间有很大差异,我认为这取决于计算机上的负载和网络拥塞。在针对 V1 设备的测试中,我在 29 秒后超时。这是因为组成 snmpwalk 命令的 getnext 请求之一超过了超时时间吗?有没有办法区分调用繁忙的设备和许多 getnext 请求失败之一(想要更长的超时)和调用死设备(想要更短的超时)。在snmpwalk中间超时后,只有最后一个getnext重试了吗?我假设 gosnmp 的 snmpwalk 包装了标准的 snmpwalk。Retries 和 Timeout 字段是否仅映射到 -r 和 -t 命令行参数?这些是针对同一设备的三个连续测试的日志。

{"经过时间":28596.288132,"time":"2021-10-11T18:24:14-04:00","message":"testSnmpWalk 成功"}

{“错误”:“请求超时(重试 0 次后)”,“经过时间”:29571.202639,“时间”:“2021-10-11T18:43:37-04:00”,“消息”:“testSnmpWalk 失败” }

{"经过时间":14645.645597,"time":"2021-10-11T18:44:40-04:00","message":"testSnmpWalk 成功"}