首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SNMP陷阱数据包传递给Ubuntu上的php守护进程

问将SNMP陷阱数据包传递给Ubuntu上的php守护进程
EN

Stack Overflow用户
提问于 2015-05-08 01:05:10
回答 2查看 983关注 0票数 2

我有一个Ubuntu服务器,它正在收集传入的SNMP陷阱。目前,这些陷阱是使用PHP脚本处理和记录的。

文件/etc/snmp/snmptrapd.conf

代码语言:javascript
复制
traphandle default /home/svr/00-VHOSTS/nagios/scripts/snmpTrap.php

这个脚本很长,包含许多数据库操作。通常,服务器每天收到数千个陷阱,因此这个脚本占用了太多的CPU时间。我的理解是,这是因为每次收到陷阱时,php脚本的启动成本都很高。

我收到了重写这个脚本的请求,我正在考虑将这个脚本作为一个守护进程运行。我可以创建一个Ubuntu守护进程。我的问题是如何使用snmptrapd.conf文件将陷阱处理程序传递给这个守护进程?

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-09 03:04:39

一个建议是使用内置于snmptrapd 5.5中的mysql支持。这样,您可以使用mysql作为队列,并批量处理陷阱。

详细信息见snmptrapd页面:http://www.net-snmp.org/wiki/index.php/Snmptrapd。

如果不使用mysql,另一个选项是使用命名管道。

现在执行mkfifo snmptrapd.log更改snmptrapd以写入此日志。它不是一个文件,但它看起来像一个。然后编写另一个守护进程来查看命名管道中的新数据。

票数 1
EN

Stack Overflow用户

发布于 2015-05-10 13:19:58

您可能可以使用PHP /PHP来最小化PHP脚本的启动成本。

尽管如此,您可能需要编写一些包装外壳脚本来将请求从snmptrapd转发到fcgi协议。

但首先,我建议检查PHP脚本。PHP启动成本并不是很高,每分钟很少的请求应该显著提高CPU的使用率。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30114168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档