2

SNMP トラップ経由でネットワーク管理システムに複数の変数を送信できる Web アプリケーション (注: PHP で作業しています) 用に設計された管理情報ベース (MIB) を探しています。設計する必要がありますか、それとも解決策は既にありますか?

詳細:

基本的に、Web アプリケーションでエラーが発生するたびに、ネットワーク管理システム (Zenoss) にトラップを送信したいと考えています。次のように 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 ボックスで実行中)

4

1 に答える 1

1

あなたがしていることは軽量で公開されていないので、アプリのこの時点で MIB について心配する必要はありません。MIB は、SNMP 製品を誰が使用しているか、それらのトラップが何であるかなどを一般に知らせる単なるデータ構造/スキーマです。自分だけで使用する場合は、MIB について心配する必要はありません。PHP SNMPモジュールを使用して、以前に使用されていないOIDでやりたいSNMPトラップを開始し、ネットワーク管理ソフトウェアがそれらのOIDの意味を認識していることを確認することをお勧めします. NMS が OID varbind を使用してこれらの SNMP トラップを取得すると、それらの変数が何であるかがわかります。どうなるか教えてください。

PHP SNMP

2 番目の質問については、一連のトラップを一度に送信することはできません。ただし、SNMP は非常に軽量であるため、これは問題になりません。トラップの配列がある場合に私がすることは、foreachループまたは反復処理を実行し、配列を調べてトラップを一度に 1 つずつ送信することです。ここで、各トラップに一意の OID を指定して、 NMS は、NMS 側で適切に解釈されるように、どの OID のトラップ文字列かを認識しています。

SNMP は非常に優れたプロトコルですが、非常に難解です。よくなって。

于 2011-10-03T04:17:24.897 に答える