目标:-在Apache Nifi中寻找一种将SNMP陷阱接收机制用作自定义处理器的选项。
看过如何在Nifi中创建自定义处理器的参考文献(Apache docs和youtube videos), GetSNMP的Nifi源代码(包括AbstractSNMPProcessor),ListenSysLog,GetFile等。
已经有了一个使用SNMP4J库的简单(java code)SNMPTrap接收器,并且可以使用基于UDP或TCP的端口监听特定的地址。然后在出现陷阱(可以通过SNMP4J库的简单Java代码模拟)时,可以打印PDU详细信息。
现在,当尝试在Nifi中以自定义处理器的形式编写此代码时,不知道将侦听机制放在哪里,然后处理实际的PDU部分。 有点撞在这里。
GetSNMP处理器讨论特定的OID,并使用它来获取信息的GET或Walk策略选项。在这里(出于我的目的)在运行Nifi服务器的位置寻找一个选项,并希望从运行Nifi的特定系统中获取SNMP陷阱。对于我的目标,没有上下文来扩展GetSNMP代码。
在ListenSyslogProcessor中,有一个阻塞队列机制。从中我无法得出去在ip地址上侦听陷阱的信息,以及如何精确地将ProcessContext和onTrigger方法的ProcessSession选项用于Nifi自定义处理器。
欢迎任何输入...
答案 0 :(得分:0)
无法在Apache Nifi中创建自定义处理器以接收SNMP陷阱。还有其他可能,我将在这里说明。这可能会对其他人有所帮助。
实际上尝试使用linux命令(如net-snmp,snmptrapd)捕获SNMP陷阱。这些选项实际上并没有捕获SNMP陷阱,没有经过Java代码陷阱发送器进行测试,然后没有使用在线资源中的命令生成的陷阱。
如果您有更好的主意,请分享。