2012-02-17 11 views
1

私は明らかに逃したかもしれないと思いますが、良い答えが得られません。自分のプログラムからsnmpdにデータを取得する

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

私はMIBで別々に作業し、OIDを割り当てるなどしています私は、私が設定して取得したいvarsのものを知って、私は読んだことがあるとSNMP/snmpdエージェントを作ることにものを再読み込み、および/またはサブエージェント。近くに私が言うことができるように、彼らは両方ともSNMPにコンパイルされているか、共有ライブラリとしてリンクされています。右?

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

ありがとうございます!

答えて

0

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

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

関連する問題