2010-12-14 10 views
5

私はDebianを使っており、私たちは監視したいサーバを持っています。
アプリケーションは私たちのもので、監視目的、グラフ、およびアラームのためにエクスポートする約100個のリアルタイムカウンタがあります。Debianで独自のアプリケーションにSNMPサポートを追加する最良の方法

Debianパッケージを使用してアプリケーションをインストールしているため、Debianはnet-snmpに基づいたsnmpdデーモンを使用してSNMPをエクスポートするため、これを行う方法を検討してきました。 これまで私が見てきたすべてのアプローチは、snmpdを再コンパイルしてダイナミックライブラリをロードし、snmpdの機能を複製するサブエージェントのフォームをコンパイルすることから、非常に複雑に見えます。

これらのオプションのすべてが、私は、私は誰もが実現可能な実装を発見した場合は早期に、私が思っていたことをあきらめたくないSNMP以外の何かのために行くべきだと思い作りながら。

アプリはC++で書かれているので、理想的にはCまたはC++でコーディングする必要がありますが、ラッパーやその他の提案が可能です。

答えて

5

net-snmpは、エージェント拡張プロトコルsmuxagentxの両方をサポートしているため、サブエージェントはさまざまなプロセスで使用できます。彼らはまた、CのAgentXサブエージェントを書いているときにtutorialを持っています。

+0

したがって、別のプロセスをサブエージェントとして追加するか、独自のプロセスを直接サブエージェントにしますか?それが一度に行われるが、このための別のプロセスを作成し、途切れが少し多すぎるに見えることができたときに一方の側に私は100個の値の100倍をエージェント・ポーリング私のプロセスのアイデアを好きではありません。 –

+1

適切なマルチプロセシング/非同期処理では、プロセスが100要求を取得しても問題はありません。だから私は間違いなくサブエージェントをアプリケーションプロセスに入れようとしています。 –

0

net-snmpを試しましたか?

+0

Debian snmpdはnet-snmpをベースにしています。私が見逃していない限り、net-snmpに記載されているアプローチはnet-snmpに記載されていますanything –

+0

彼が参照しているsnmpdは、おそらくnet-snmpに由来しています。 –

5

よく見落とされる解決策は、私にはかなりいいと思われますが、AgentX++です。つまり、サブエージェントをやることは悪い選択ではありません。パッチが適用されていない標準のsnmpdを起動します。サブエージェントを使用して接続すると、追加するOIDだけが追加されます。エージェントXをコーディングするためのnet-snmpキット(プロトコルと呼ばれる)は、使用するのが簡単ではありませんが、それほど難しいものでもありません。 https://metacpan.org/pod/NetSNMP::agent

+0

また、https://pypi.python.org/pypi/agentx –

2

のLinuxでこれを行うには伝統的な方法は、NET-SNMPパッケージを使用することです:サブエージェントの開発のためのPerlモジュールもあります。まずMIBを記述してください。すべてがMIBに基づいており、MIBに変更を加えると、通常、コードに多くの変更が生じます。 http://www.net-snmp.org/wiki/index.php/Tutorials#Coding_Tutorials

関連する問題