使PHP站点将SNMP信息发送到网络管理应用程序

时间:2009-09-08 15:40:47

标签: php snmp mib

我正在尝试让PHP网站通过SNMP发送信息。我一直在阅读关于SNMP的分配,但我仍然对从哪里开始有点无能为力。

我相信我需要使用我的网站用来发送信息的所有OID创建一个MIB。它是否正确?我如何以及在何处定义这些变量(OID)?有人能指出我正确的方向吗?

我在服务器上使用FreeBSD。

提前致谢。

3 个答案:

答案 0 :(得分:4)

您要做的是发送“SNMP陷阱”。您无需定义MIB。 MIB只是将“半人友好”名称转换为OID,例如SNMPv2-MIB :: sysContact.0到.1.3.6.1.2.1.1.4.0。对于私有应用程序,理论上你可以使用你想要的任何OID,就像你理论上可以使用任何你想要的私有网络的IP地址一样。我不确定是否有首选的“私人”OID分支。有一些很好的信息可以帮助您开始http://www.paessler.com/support/kb/questions/49/。看起来PHP并不直接支持发送SNMP陷阱,但您可以调用“snmptrap”命令。

答案 1 :(得分:1)

有几个问题:

  • 要获得自己的顶级标识符,我认为你实际上必须在某个地方请求它(并且可能要付钱?)但是有一个实验范围可以用来测试。 (这不是php问题,它是一个snmp问题/功能)

  • 据我所知,该协议假设一个进程侦听与http端口完全不同的端口,并且不使用TCP而是使用UDP。只是以通常的方式创建一个php页面是行不通的。

一个可能的解决方案可能是在apache(或你正在使用的任何web服务器)中使用snmp模块,它允许你在php中编写响应逻辑。我的感觉是,你在网上遇到的大部分snmp php内容都不是关于代理部分,而是关于管理器部分。

答案 2 :(得分:0)

我所知道的是,SNMP是一种协议,主机向设备发送特定OID值的请求,然后接收响应。

我不确定你能有一个能回答这个数据包的php网站。

我发现的唯一信息是PHP有一个SNMP客户端类 PHP SNMP

维基百科为您提供有关SNMP的详细信息 link text

但我仍然确定网站不能充当SNMP服务器。