是否有一个通用的web应用程序MIB允许自定义变量通过SNMP Trap发送


Is there a generic web app MIB that allows custom variables to be sent via SNMP Trap?

我正在寻找为web应用程序设计的管理信息库(MIB)(注:我在PHP中工作),我可以通过SNMP Trap向我的网络管理系统发送多个变量。我需要设计一个还是已经有解决方案了?

更多细节:

基本上我想发送一个陷阱到我的网络管理系统(Zenoss)每当有一个错误在我的web应用程序。我想在PHP中像这样调用它(注意:这个语法可能不正确):

(注:显然,BOSSJONES-NOTIFICATION不存在;我只是在这个例子中使用它。我想用我正在寻找的MIB代替它,或者需要设计的MIB。)

<?php
const SNMPTRAP = '/usr/bin/snmptrap';
$host = 'zenoss.bossjones.com';
if ( some_random_error() ) {
    exec( SNMPTRAP . ' -v 2c -c public -L e ' . $host .
          ' "" BOSSJONES-NOTIFICATION::snmpErrorNotification' .
          ' device s "192.168.1.121" errorType s "image upload fail"' .
          ' errorCode i 340 errorMessage s "Could not upload image at path' .
          ' /path/to/image/blah.gif" ' );
}

我知道MIB可能没有相同的参数,当然,但我想知道是否有一个通用的解决方案,我可以"凑合"或学习,这样我就可以创建我自己的工作为我的目的?

此外,是否有可能发送信息的列表(如数组),而不仅仅是多个字符串通过陷阱?

很抱歉这么长的问题。想提供尽可能多的细节。

(PS:在Ubuntu 11.04 Linux操作系统上运行)

我不会担心MIB在你的应用程序在这一点上,因为你正在做的是轻量级的,不是公开的。MIB只是一个数据结构/模式,它告诉公众谁使用您的SNMP产品,这些陷阱是什么,等等。如果您只打算为自己使用它,我不会担心MIB。我建议使用PHP SNMP模块来启动您想要使用的任何SNMP trap,无论您以前没有使用oid,然后确保您的网络管理软件知道这些oid的含义。当您的NMS获得带有OID varbind的SNMP trap时,您就会知道这些变量是什么,等等。请告诉我情况如何。

PHP SNMP

对于你的第二个问题,你不能一次发送一组陷阱。但是SNMP非常轻量级,所以这对您来说不应该有什么影响。如果你有一个陷阱数组,我会做的是,只做一个foreach循环或迭代的东西,然后遍历你的数组并一次发送一个陷阱,你为每个陷阱提供一个唯一的OID,这样你的NMS就知道哪个陷阱字符串对应哪个OID,这样它就能在NMS端得到正确的解释。

SNMP是一个非常棒的协议,但是非常深奥。很好。