问题标签 [snmp-trap]
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++ - WinSNMP v1 陷阱
我在 C++ 中使用 WinSNMP 来发送 snmp 陷阱。为了向后兼容,我需要发送 v1 snmp 陷阱。WinSNMP 与 v2 陷阱一起使用,但能够在发送陷阱时将这些 v2 陷阱转换为 v1。我用SnmpSetTranslateMode(SNMPAPI_UNTRANSLATED_V1)
它来做到这一点。我还在绑定列表的开头添加了 sysUpTime oid (1.3.6.1.2.1.1.3.0)、snmpTrapOID (1.3.6.1.6.3.1.1.4.1.0) 和 enterpriseOID (1.3.6.1.6.3. 1.1.4.3.0) 在绑定列表的末尾,以便可以发送 v1 陷阱。
除了两个(可能相关的)事情之外,一切都很好。
陷阱中的 agent-addr
字段始终为 0.0.0.0(我尝试将 snmpTrapAddress oid(1.3.6.1.6.3.18.1.3.0) 添加到绑定列表,但没有奏效)。我希望此字段包含源的 IP 地址。
HSNMP_ENTITY
第二个问题是,尽管我在with SnmpStrToEntity
and中指定了一个 IP 地址和一个端口,SnmpSetPort
并且我HSNMP_ENTITY
在SnmpSendMsg
函数中使用了它,但陷阱仍然从另一个端口(在动态端口范围内的某个位置)发送。
这里有没有人知道如何解决这个问题,或者谁能告诉我这是否可能?
snmp - SNMP 陷阱中的子 OID 是什么?
我继承了 MIB 和示例文档,需要重新实现生成陷阱的代码。(由于各种原因,原始代码丢失并永远消失了,但 CM 不是我的问题。)
MIB 说:
我们的文档有以下片段:
我想不通的是用于警报调度时间的 OID。如果它是 [our-base-oid].1.3.0,甚至是 [our-base-oid].2.4.0.[our-base-oid].1.3,我会理解的。如果我们在 { alertEvents 3 } 处生成陷阱,单个对象的后缀是什么?
MIB 可能是在文档发布后更新的,所以如果专家认为这是错误的,那么 alertDispatchTime 的 OID 应该是什么?
谢谢。
c# - .NET 中的自定义 SNMP 陷阱实现
我需要使用 SNMP(在 .NET 中)创建一个监控机制。我认为我们将使用nsoftware 组件来处理大部分工作。
看来我们必须使用“陷阱”从代理到服务器进行通信。我们将有许多不同的陷阱和详细说明每个陷阱的各种信息。实施自定义陷阱的最佳方法是什么?也就是说,不仅发送陷阱,而且将描述陷阱的信息发送给我们的“snmp 管理器”,最好的方法是什么?我认为这是通过“变量绑定”完成的。要使用“变量绑定”,我们是否需要创建自己的“企业编号”并使用“企业特定”陷阱?我们应该实现我们自己的自定义 MIB,还是可以只使用陷阱发送我们需要的数据(通过变量绑定)?
perl - 如何在 Perl 中监视陷阱警报?
什么是 perl 中最简单的代码来监控来自任何设备(如 UPS、整流器、空调等)的陷阱。例如,我们要监控温度、服务器机房湿度、空调水平等。每个设备(如 UPS)内部都有 SNMP 卡和然后我们把陷阱服务器的IP地址放出来。目前我正在使用 snmptt 开放软件应用程序。
java - 在 Java 中发送陷阱 v2
如何从 Java 应用程序发送 snmpv2 陷阱。我试图在 snmp4j 上做例子,但它没有用。
php - 使用 PHP 生成 SNMP 陷阱
我正在拼命寻找一种从 PHP 生成 SNMP 陷阱的方法。我知道使用 snmpget 的内置方法,但我无法弄清楚如何发送 SNMP 陷阱。
有人知道它的类/代码片段吗?除了使用 exec 调用 cli 工具之外,搜索网络并没有带来任何东西,这对我来说绝对是没有选择的。
我怀疑有必要使用 socket_create 和相应的功能来手动生成 UDP 包......
java - 试图了解报警和报警报告控制管理信息库的用途
我是 SNMP 新手,无法理解我需要实现的 Java 应用程序的 SNMP 要求。我正在使用openDMK来提供 SNMP 支持。请原谅我的问题中的任何残酷无知。我已经阅读了 RFC 规范,但大部分文本对我来说似乎都是胡言乱语。
一项要求是“SNMP 支持必须符合Alarm MIB (RFC 3877) ”。
- 这是什么意思?
- 警报 MIB 有什么用途?
- 这与 SNMP 陷阱/通知有关吗?阅读 RFC 规范,我感觉这是关于我的应用程序需要发送给管理器的 SNMP 通知/陷阱,以防发生不良情况(例如超过阈值)。如果是这样,我仍然不明白我到底需要对这个要求做什么。
- 我将需要定义我自己的应用程序的 SNMP 陷阱定义(即不使用通用的)。现在我需要支持警报 MIB,我的 MIB 会有什么不同?
- 是不是除了发送通知之外,我还需要将该通知存储在警报表中?如果是这样,这样做的目的是什么?
以下是 openDMK 库中用于发送 SNMPv2 陷阱的方法:
公共无效 snmpV2Trap(SnmpOid trapOid,SnmpVarBindList varBindList)
我对如何使用此方法的理解
trapOid
将参考我的应用程序 MIB 中通知的 OID 以及varBindList
要发送的任何附加参数。那么,Alarm MIB 如何/在哪里适合这个?
另一个要求是“SNMP 支持必须符合警报报告控制 MIB (RFC 3878) ”。
- 这是什么意思?
- 警报报告控制 MIB 有什么用途?
- 与 SNMP 陷阱/通知有任何关系吗?
c++ - Manager 无法识别 SNMP 陷阱
我正在尝试使用 Microsoft 的 WinSNMP 库创建一个示例应用程序来创建一个陷阱示例。请参阅下面的代码示例:
我可以看到陷阱正在连接并被接收,但不幸的是 SNMP 管理器没有通知我陷阱。我有一种很好的感觉,问题是与我这边形成的陷阱有关,不是与管理器(SNMPc管理器)有问题吗?
这是我使用虚拟 OID 创建的自定义 MIB:
此外,我还有一个指向捕获 Trap的Wireshark 转储的链接。
SNMPc 管理器允许我使用一个小工具发送虚拟陷阱;但是,这些陷阱是 SNMPv2,而 WinSNMP 使用的是 v1,所以我很难比较。任何建议将不胜感激。
c# - C# Snmp 陷阱发送器
我想开发一个 snmp 陷阱发送器程序。以前我开发了一个 Windows 服务项目。我希望该陷阱向我发送有关此服务的报告。这可能吗?我应该遵循哪些方式?
windows - SNMP 陷阱到 IPv6 地址
有人知道可以将 SNMP 陷阱发送到 IPv6 地址的(Windows)实用程序吗?
我已经尝试过trapgen,但它似乎无法使用 IPv6 地址。还有 net-snmp windows 端口,但是用它来发送陷阱真的很痛苦。对我来说,它根本不起作用。它总是因“找不到模块(TRAP-TEST-MIB):”而失败。
谢谢。