2009-09-08 8 views
8

私は、PHPウェブサイトをSNMP経由で情報を送信しようとしています。私はSNMPについて詳しく読んできましたが、どこから始めたらいいのか分かりません。PHPサイトをネットワーク管理アプリケーションにSNMP情報を送信する

私は私のウェブサイトが情報を送信するために使用するすべてのOIDでMIBを作成する必要があると考えています。これは正しいです?これらの変数(OID)はどこでどのように定義できますか?誰かが私を正しい方向に向けることができますか?

私はサーバー上でFreeBSDを使用しています。

ありがとうございます。

+0

PHPプロセスがSNMPオブジェクト取得要求をリッスンするか、SNMPトラップを送信しようとしていますか? – derobert

+0

実際に値を設定してトラップを送信しようとしています。例えば、私は要求されたページの実行時間をとり、それをSNMP OIDに設定してトラップを送信したいと思います。その後、ネットワークマネージャーアプリケーションはトラップを取得し、ページ要求が行われたことを認識し、ロードにn秒かかりました。 – rogeriopvl

答えて

4

"SNMPトラップ"を送信しようとしています。 MIBを必ず定義する必要はありません。 MIBは、SNMPv2-MIB :: sysContact.0などのOIDに変換された「準人間的な」名前を.1.3.6.1.2.1.1.4.0に変換するだけです。プライベートアプリケーションの場合、理論的には、他の人に接続されていないプライベートネットワークに必要な任意のIPアドレスを理論的に使用できるのと同様に、任意のOIDを使用できます。私は、 "プライベート" OIDブランチがあるかどうかはわかりません。 http://www.paessler.com/support/kb/questions/49/で始めるには良い情報があります。 PHPはSNMPトラップの送信を直接サポートしていないようですが、 "snmptrap"コマンドを呼び出すことができます。

+0

あなたの答えは、私に正しい道を歩む貴重な情報を与えました。ありがとう。 – rogeriopvl

0

私が知っているのは、ホストが特定のOIDの値をデバイスに要求してから応答を受け取るプロトコルであるということです。

私はあなたがこのパケットに答えるPHPウェブサイトを持つことができるとは確信していません。

私が見つけた唯一の情報は、PHPは、SNMPクライアントクラスに PHP SNMP

を持っているウィキペディアはあなたにSNMP link text

に関する詳細な情報を提供します。しかし、私はまだウェブサイトがないことを確信しているということですSNMPサーバーとして動作します。

+0

PHPにはソケット機能があるので、socket_createでUDPソケットを作成してSNMP要求を待ち受けることができます。 – derobert

+0

私はPHPがソケット機能を持っていることを知っています...しかし、質問で尋ねられた "ウェブサイト"は、UDPパケットを受信するための待機ループを作成することはできません..質問がボックスで実行されているPHPプログラムについての場合。 –

1

問題がいくつかあります:(?おそらくお金を払う)

  • 私はあなたが実際にどこかにそれを要求することがあると思う独自のトップレベルの識別子を取得するにはしかし、あなたが得る実験範囲がありますテストに使う。 (これはPHPの問題ではなく、SNMPの問題/機能です)

  • 私の知る限りでは、このプロトコルでは、httpポートとはまったく違うポートでリッスンするプロセスが想定されていますが、TCPも使用していませんしかしUDP。通常の方法でPHPページを作成するだけでは動作しません。

可能な解決策は、PHPでの応答ロジックをプログラムすることができますapacheの(または任意のウェブサーバを使用している)でのSNMPモジュールを使用するかもしれません。私の気持ちは、あなたがウェブ上で遭遇するSNMPのPHPのもののほとんどがエージェント部分についてではなく、マネージャ部分についてであるということです。

+0

はい、すでにApacheでsnmpモジュールを使用しています。私は、ページが要求されるたびにOID値を書くことができればいいだけです。しかし、これについては、私はMIBの "構造"を作成しなければならないと信じています。 – rogeriopvl

関連する問題