我正在尝试让 PHP 网站通过 SNMP 发送信息。我一直在阅读有关 SNMP 的分配,但我仍然对从哪里开始一无所知。
我相信我需要使用我的网站将用来发送信息的所有 OID 创建一个 MIB。这个对吗?我如何以及在哪里可以定义这些变量 (OID)?有人可以指出我正确的方向吗?
我在服务器上使用 FreeBSD。
提前致谢。
您要做的是发送“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”命令。
有几个问题:
要获得您自己的顶级标识符,我认为您实际上必须在某个地方请求它(并且可能要付钱?)但是有一个实验范围可用于测试。(这不是 php 问题,而是 snmp 问题/功能)
据我所知,该协议假定一个进程监听与 http 端口完全不同的端口,并且不使用 TCP 而是使用 UDP。仅仅以通常的方式创建一个 php 页面是行不通的。
一个可能的解决方案可能是在 apache(或您正在使用的任何网络服务器)中使用 snmp 模块,它允许您在 php.ini 中编写响应逻辑。我的感觉是,您在网络上遇到的大多数 snmp php 东西都不是关于代理部分的,而是关于管理器部分的。
我所知道的是,SNMP 是一种协议,主机将特定 OID 的值的请求发送到设备,然后接收响应。
我不确定您是否可以拥有一个回答此数据包的 php 网站。
我发现的唯一信息是 PHP 有一个 SNMP 客户端类 PHP SNMP
维基百科为您提供有关 SNMP链接文本的详细信息
但我仍然确定网站不能充当 SNMP 服务器。