2011-09-16 5 views
2

SNMPトラップを介してネットワーク管理システムに複数の変数を送信することができるWebアプリケーション(注:私はPHPで作業しています)用に設計された管理情報ベース(MIB)を探しています。私は1つを設計しなければならないのですか、それともそこに解決策がありますか?SNMPトラップ経由でカスタム変数を送信できるようにする汎用ウェブアプリMIBはありますか?

詳細:

は基本的に私は自分のWebアプリケーションにエラーがあるたびに、私のネットワーク管理システム(Zenoss)にトラップを送信します。私はPHPで次のように呼びたいと思います(この構文は正しくない可能性があります)。

注:明らかに、BOSSJONES-NOTIFICATIONは存在しません。私が探している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ボックス上で実行している)

答えて

1

何をやっていることは、軽量で公開されていないので、私は、あなたのアプリケーションで、この時点でMIBを心配しないでしょう。 MIBは、SNMP製品を使用する一般人、そのトラップの種類などを示すデータ構造/スキーマです。自分だけで使用する場合は、MIBについては心配しません。 PHPのSNMPモジュールを使用して、以前は使用されていなかったOIDがあればSNMPトラップを開始し、ネットワーク管理ソフトウェアがOIDの意味を理解していることを確認することをお勧めします。 NMSがOID varbindを持つSNMPトラップを取得すると、その変数が何であるかなどを知ることができます。あなたの2番目の質問については

PHP SNMP

、一度にトラップの配列を送信することはできません。 SNMPはとても軽量ですが、これはあなたにとって重要ではないはずです。あなたがトラップの配列を持っているならば、ちょうどforeachループか何か反復するだけで、あなたの配列を通り抜けて、各トラップのためのユニークなOIDを与えるNMSはどのOIDのトラップ文字列を知っているので、NMS側で適切に解釈されます。

SNMPは非常に素晴らしいプロトコルですが、非常に難解です。よくなって。

+1

私はこれを書いた時、非常に新しいstackoverflowでした、答えを受け入れるのを忘れてしまった! –

+0

_ "ネットワーク管理ソフトウェアがこれらのOIDの意味を知っていることを確認してください。_これはMIBを定義するためのものです。 –

関連する問題