2

おそらく明らかなことを見逃していると思いますが、良い答えが見つからないのです。

ハードウェア内の Linux (Ubuntu?) 組み込み PC で実行されるスタンドアロン プログラムを開発しています。SNMPが話す「もの」になりたいです。まあ、私自身の SNMD "daemon" コードをコンパイルして、一般ユーザーがポート 161 にアクセスできるように Linux を説得するまでは、Net-SNMP の snmpd を選ぶと思います。より良い製品を使用するための提案をお待ちしています。LGPL、BSD、MIT、ライセンスをお願いします。

MIB と OID の割り当てなどについて個別に作業しています。どの変数を設定して取得するかなどを知っています。

SNMP/snmpd エージェントおよび/またはサブエージェントの作成に関する内容を読み、再読しました。私が知る限り、それらは両方ともsnmpにコンパイルされているか、共有ライブラリとしてリンクされています。右?

では、そのエージェントが別の一般ユーザー セッションで実行されている別のプログラムと対話するにはどうすればよいでしょうか。使用する直接的なテクニックはありますか?Dバス?ペン()? 名前付きパイプ?共有メモリ?一時ファイル?UDPポート? より良いなにか?それとも、自分のプログラムを .SO に変換して、snmpd に起動させたいですか? その時点で、変数を取得/設定するためにどこに電話するかをsnmpdに伝えることができると思います。右?

ありがとう!

4

1 に答える 1

0

「AgentX」プロトコルは、任意のアプリケーションが実行中のシステム SNMP デーモンに SNMP サービスを提供する方法です。アプリケーションは 161 以外のポートでリッスンし (通常、ライブラリが詳細を処理します)、システム snmpd が OID の要求をサブエージェントに転送します。この方法では、コードをシステムのsnmpdにリンクする必要はありません。

多くの場合、より簡単な方法は、データを取得または設定するスクリプトを実行するようにシステム snmpd を構成することです。スクリプトは、必要に応じて、他の種類の IPC を使用してアプリケーションと対話することができます (たとえば、HTTP サーバーへの JSON など)。

于 2012-02-17T22:20:30.140 に答える