問題タブ [net-snmp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Linux で IPv6 で net-snmp 5.5 を使用するには?
Linux SNMP エージェントは IPv6 をサポートしていますか? 私はnet-snmp 5.5で作業しています。IPv4 アドレスの set および get 操作では問題なく動作しますが、IPv6 アドレスでは不明なホストにつながります。
何が問題で、どうすれば解決できますか?
snmp - net-snmp: テーブルが 1 ではなく 2 の xxEntry 値を持つように強制します
net-snmp を使用して、テーブル コードが生成されmib2c -c mib2c.iterate.conf fooBarTable
、その後大幅にハッキングされました。
残念ながら、テーブルは通常の 1 ではなく 2 のエントリで定義されています (私はこれを行いませんでした。これを既存の状況に適合させようとしています)。MIB は次のようになります。
テーブルを net-snmp に登録するときは、"...,1,8" のような OID を与えるだけです (つまり、fooBarTable までですが、エントリは含まれません)。net-snmp は暗黙的に .1 をテーブル OID に追加し、次に列、インデックスなどに追加します。
そのエントリ値を 2 に強制する半サポートの方法はありますか? (つまり、ハンドラーに渡されるオブジェクトからビットをハッキングする必要はありません。)
python - Pythonバインディングからnet-snmpライブラリのすべてのグローバル内部状態をリセットする
コマンドインターフェイスとしてSNMPエージェントを実行するこのハードウェアとソフトウェアのテスト対象の自動統合テストを作成しようとしています。テストのセットアップは次のようになります。Fitnessをテストランナーとして使用し、PyFitを使用してPythonでテストを記述できるようにしています。次に、Pythonバインディングでnetsnmpを使用してSNMPコマンドを送信します。これはかなりうまくいきます。
ただし、スイートを実行しようとすると、SNMPエージェント(テスト対象)が再起動され(通常は別のシミュレートされた時間に)、netsnmpの内部であらゆる種類の興味深いエラーが発生します。
コミュニティ名やコンテキスト名などのnetsnmpライブラリ内に多くのグローバル状態が保存されており、問題があるのは、SNMPv3でのリプレイ攻撃を防ぐために使用されるEngineTimeとEngineBootCntです。これにより、エージェントは私のsnmpコマンドを拒否します。
私の問題は、内部のグローバル状態がリセットされるように、(Pythonバインディングから)netsnmpライブラリを再初期化する方法です。Pythonバインディングのnetsnmp.Sessionオブジェクトは、パラメーターEngineTimeとEngineBootsを取り、それらを0に設定するとリセットされるはずですが、実際にはそうはならないようです。また、リセットする必要のある他のグローバル状態がそこにあるかどうかもわかりません。
純粋なpythonsnmpライブラリpysnmpを使用するようにテストを書き直す必要があると思う時点ですが、それを避けたいと思っていました。
net-snmp - MIBS を net-snmp に追加した後、OID を読み込めません
次のようにして、Oracle MIB を net-snmp に追加します。
mibs +OR-mib
snmp.conf で
#MIBS=+OR-mib
シェルで
しかし、次の方法でリロードする
#snmpwalk -v2c -c private 127.0.0.1 .1.3.6.1.4.1.111
と:
snmpv2-smi::enterprises.111= no such available on this agent at this OID
これを修正するにはどうすればよいですか?
ありがとう
net-snmp - net-snmpを使用してリクエスト固有のデータをSNMPエージェントに設定するにはどうすればよいですか?
SNMPエージェントがソースリクエスターに応じて異なる応答をするようにしたいのですが、SNMPエージェントで区別できるように一部のデータを魔法で伝達する方法を見つけることができません。
設定してみたのはnetsnmp_session
構造とnetsnmp_pdu
構造です。の2つのパラメータだからですsnmp_send
。私が促進しようとしたデータフィールドはmyvoidとcallback_magicです。
しかし、残念ながらSNMPエージェントでは、受信したデータはすべて0であり、これはSNMPクライアントで設定したものではありません。
snmp - デバイスのSNMPサポートを構築するためのリソース?
デバイスにSNMPサポートを追加するためのリソースを推奨できる人はいますか?私が行う必要のある手順を理解するのは次のとおりです。
- MIBがサポートする値を定義するMIBファイルを作成します
- コードジェネレーターを使用してCモジュールに変換します
- 生成されたコードを使用して実際の値をフェッチする
- モジュールをagentxサブエージェントに変換して、エージェントxプロトコルをサポートする任意のSNMPエージェントと連携できる別のプロセスをMIBに統合できるようにします。
私の仮定は正しいですか、提案や修正はありますか、私は特に私を助けるリソース、本、コース、オンラインなどを探しています...
ありがとう
perl - perl スクリプトが管理対象システムから SNMP トラップを受信するにはどうすればよいですか?
次のことをしたいのですが、最善の方法を使用しているかどうかわかりません。
Sparc/Solaris 10 マシンで実行されている perl スクリプトは、着信 SNMP トラップ パケットを待機する必要があります (たとえば、ポート 162 で)。トラップを受信すると、それをデコードして何らかの処理を行い、次のトラップの待機を再開する必要があります。
David M. Town による Net::SNMP を調べましたが、リクエストの送信とレスポンスの受信しか許可されていないと思います。このドキュメントで自発的なトラップ メッセージを待つ方法が見つかりません: http://search.cpan.org/dist/Net-SNMP/lib/Net/SNMP.pm
一方、Net-SNMP パッケージは非常に堅牢でよく使用されているライブラリのように見えますが、そのドキュメントでも明確なパスは提供されていません。SNMP::TrapSession を使用すると、トラップを送信できますが、受信できません (?)。
いくつかのグーグルは、「snmptrapd」バイナリを使用し、それに埋め込まれたperl関数を使用して、snmptrapdがメッセージを受信したときにスクリプトを呼び出す必要があるという提案に私を導きます。これは機能する可能性がありますが、組み込みの perl オプションには大きなファイルのサポートなしでコンパイルされた perl バイナリが必要なため、実用的ではありません。私はターゲット システムを所有していないため、コンパイラ/インタプリタを置き換えることはできません。特別にコンパイルされた perl を使用してソフトウェアを出荷することもできましたが、そうすると、避けたいと思っていたクロスプラットフォームの問題が発生してしまいます。
SNMP4J などで Java ではなく Perl を使用している理由は、以前は HP NNM の perl API に依存していたレガシー perl コードがあり、ライセンス コストを削減するためにフリー ソフトウェア バックエンドに移行する必要があるためです。
perl - Perl で拡張 SNMP 出力を取得できません
SNMP 値を元に戻す Perl スクリプトを作成しましたが、これは正常に機能します。リモート サーバーにスクリプトを記述し、SNMP の拡張機能を使用して、スクリプトの値を SNMP に格納しました。
私が実行した場合:
私は結果を得る:
しかし、スクリプトを使用して情報を取得しようとすると、取得できません。スクリプトは次のとおりです。
しかし、何も返されず、理由がわかりません...エラーも何もありません。愚かなことを見逃しましたか?
これが私を狂わせているので、誰かが助けてくれることを願っています:)
c - netsnmp_gethostbyname_v4の動作
res = netsnmp_gethostbyname_v4( '0.0.0.0'、pdu_in_addr_t);
res = ???
ありがとうございました!
perl - さまざまなプロパティを使用してPerlで関数を呼び出す
SNMPセッションを開始し、データ/カウンターとその値をcsvファイルに抽出するPerlスクリプトを作成しました。7つのperlスクリプトがあります。上部に異なるプロパティ/定義/変数がありますが、エンジンは同じです。
この時点で、これらの7つのperlスクリプトは、定義された変数を除いて冗長です。実行perlスクリプトをプロパティ/実行ファイルとして保持し、エンジンを別のファイルに保持する方法はありますか?このプロパティ/実行perlスクリプトは、エンジンを呼び出します(独自のスクリプトで定義されたプロパティを使用)。
つまり、変数を独自のスクリプトで(実行としても)使用したいのですが、統一された「エンジン」から特定の関数を呼び出します。
すなわち
retrieve_mibs1.pl retrieve_mibs2.pl retrieve_mibs3.pl retrieve_mibs4.pl retrieve_mibs5.pl retrieve_mibs6.pl retrieve_mibs7.pl