我需要收集snmptraps并在web界面中显示它们。应用程序已经包括*ruby on rails *linux *delayed_job (用于排队) *postgresql *几个执行snmp查询的cron作业。
现在我需要运行像snmptrapd这样的东西来收集警报。是否可以让snmptrapd将其陷阱写入我可以使用cron作业处理的队列中。像linux内置的mqueue这样的东西就更好了。或者甚至将其写入postgresql数据库(我知道它支持mysql,但没有提到postgres )
有人知道如何将snmptrapd的输出重定向为可以使用cron作业处理的内容吗?
发布于 2012-08-03 20:45:26
我在Perl中做了类似的事情,但您也可以用Ruby做同样的事情。
首先,您需要告诉snmptrapd谁是陷阱的默认处理程序。在snmptrapdconf中,您可以将其定义为:
traphandle default /yourpluginpath/yourplugin现在,每当一个陷阱发生时,它的数据就会被发送到你的插件。现在该由他来处理了。一旦你有了数据包,你就可以将它存储到任何你想要的数据库中,不管它是MySQL还是PostgreSQL。
唯一的问题是解析来自陷阱的数据的库。在Perl语言中,我使用了SNMP::Trapinfo,但由于我不是每个人都使用Ruby语言,所以我不知道对应的库是什么,我相信其他人可以为您指出正确的库。你甚至可以自己解析它。实际上,如果您希望其他人将数据存储到DB中,您也可以使用基本的shell脚本。
https://stackoverflow.com/questions/11786419
复制相似问题