問題タブ [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.
c++ - SNMPタイプUnsigned32の正しいエンコーディングは何ですか?
SNMPエージェントを作成していますが、MIB定義にUnsigned32タイプのOIDが含まれています。
エージェントのUnix実装は、Net-SNMPを使用し、ASN_UNSIGNED32がないため、OIDをタイプASN_UNSIGNEDとして設定します。WiresharkでGET応答を見ると、「Gauge32」値としてデコードされます。RFC 1902によると、Unsigned32とGauge32は同じであるため、これは一見して理にかなっています。
Windowsの実装はWindowsのSnmpAPI.libに基づいており、OIDをASN_UNSIGNED32として設定し、WiresharkでGET応答を見ると、「Unsigned32」としてデコードされます。それは私にはさらに良く見えます。
どうして2つの実装がネットワーク上で異なる結果を生み出すのですか?
どちらが正しいバージョンであり、両方の実装から同じものを取得するにはどうすればよいですか?
snmp - OIDの数値形式を人間が読める形式に変更するにはどうすればよいですか
プライベートMIBOIDの数値形式を人間が読める形式に変更するにはどうすればよいですか
performance - 別のコンピューターからクエリを実行すると、SNMP のパフォーマンスが変化する
私はもちろんSNMPを含む監査プロジェクトに取り組んでいます。さまざまなデバイスにクエリを実行しているときに、2 台の異なるコンピューターからマシンにクエリを実行すると、パフォーマンスが大きく異なることに気付きました。例を挙げましょう。Debian snmpwalkから Cisco 2960G スイッチを照会すると、非常に遅いです。遅いとは、各getが完了するまでに数秒かかることを意味します。その代わり、SUSE Enterprise を使用すると、 snmpwalkは通常どおり高速になり、get操作はほぼ瞬時に実行されます。Debian は NET-SNMP 5.4.3 を実行していますが、SUSE は NET-SNMP 5.4.2.1 を実行しています。このパフォーマンスの不一致は、Cisco スイッチや一部のプリンター (通常は Lexmark) などの特定のデバイスでのみ発生することに注意してください。この大きなギャップの理由は何ですか?
編集: Debian の NET-SNMP をバージョン5.7.2に更新しましたが、パフォーマンスは以前と同じくらい遅いです。
perl - PerlのNet::SNMPでトラップを送信する
より大きなPerlスクリプトの一部としてトラップを送信しようとしています。トラップ送信コードを別のファイルにコピーし、それを単独で実行しています。コードはトラップが正常に送信されたと考えているようですが、トラップリスナーを実行しているどちらのマシンにもトラップが表示されていません。
コードは次のとおりです。
編集:$ sess-> debug(255)呼び出しを追加しました。出力は次のとおりです。
編集:トラップリスナーを実行している人は、自分のマシンでこのコードを試して、それが機能するかどうかを知らせてもらえますか?
編集:私のMBPから試してみました。同じ結果。次に、デバッグ情報がポート161に送信していることを示していることに気付きました。-port => 162
パラメータを強制し、動作します。それは私にいくつかの質問を残します:
- トラップ送信者がデフォルトで161になるのはなぜですか?
デバッグをオンにして実行すると、このエラーが発生します。どういう意味ですか?
エラー:[97] Net :: SNMP :: Transport :: IPv4 :: UDP :: agent_addr():切断に失敗しました:アドレスファミリはプロトコルファミリでサポートされていません
snmp - mib2c コマンドの使用方法
実際、sysSwYear を MIBNODE として指定して .h & .c ファイルを生成しようとしており、次のコマンドを使用しています。
しかし、次のエラーが発生します。
そもそもmib2cに有効なOIDを与えていません。IE、mib ノード「sysSwYear.0」に関する情報が見つかりませんでした。これは、誤ったノードを指定したか、コードを生成しようとしている MIB がロードされていないことが原因である可能性があります。mib がロードされていることを確認するには、次の例を使用して mib2c を実行します。
次の場所にある MIB ロードのチュートリアルを読むことから始めることをお勧めします。
http://www.net-snmp.org/tutorial-5/commands/mib-options.html
また、snmptranslate を取得して MIB ノードに関する情報を表示できることを確認してください。snmptranslate が機能したら、戻って mib2c をもう一度試してください。
MIB の環境変数の設定や /usr/share/snmp/mibs でのプライベート MIB ファイルの定義など、必要なことはすべて既に行っていますが、まだ成功していません。何をすべきか?
linux - Perl for SNMP V3 が機能しないが、SNMP V1/2 (Redhat Linux) で動作する
SNMP OID を登録する Perl スクリプトがあります。SNMP 1/2c を使用すると、すべての OID を正常に登録できます。ただし、SNMP V3 では部分的にしか機能しません。
以下に示すように、SNMP V3 では、「$root_OID.0.0.0」を正常に登録できます。ただし、「$root_OID.0.0.1」の Java コードを呼び出そうとするとタイムアウトします。
SNMP V1/2c では Java 呼び出しが成功するのに、SNMP V3 では成功しない理由を知っている人はいますか?
どうもありがとう
これが私のPerlスクリプトです:
これが私の /etc/snmp/snmpd.conf ファイルです (SNMP V1/2c が無効になっています):
SNMPV3 を使用した場合の SNMPWALK の結果は次のとおりです。
snmp - 予想される "(" (_): /usr/share/snmp/mibs/ZYXEL-ES2108G-MIB.txt の 939 行目
snmptranslate -IR sysSwYear の実行中にエラーが発生しました
*予想される "(" (_): /usr/share/snmp/mibs/ZYXEL-ES2108G-MIB.txt の 939 行目 ACCESS である必要があります (to): /usr/share/snmp/mibs/ZYXEL の 939 行目-ES2108G-MIB.txt OBJECT-TYPE の不適切な解析: /usr/share/snmp/mibs/ZYXEL-ES2108G-MIB.txt の 939 行目 不明なオブジェクト識別子: sysSwYear....*
その背後にある理由は何ですか???助けてください
snmp - ネットワーク トラフィックの SNMP OID
Nagios から特定のホストのトラフィックを監視するスクリプトに取り組んでいます。既に作成されたいくつかのスクリプトを調査し、必要なほぼすべての情報を収集しましたが、トラフィックに必要な OID を特定する際に問題が発生しました。IF-MIB::ifOutOctets.1
着信トラフィックと発信トラフィックを使用して取得したかったIF-MIB::ifInOctets.1
のですが、次の行でテストしたとき:
両方の OID で同じ結果が得られましたが、正しくないようです。現在使用しているものの代わりに試すことができる他の変数があるかどうか、私はさまよっています。
IF-MIB
ですべての値を取得できますが、snmpwalk
それらを解釈する方法がわからないため、に関する情報を見つけることができる場所を教えていただければ便利です。
python - マルチプロセッシングを使用したctypesnetsnmp
私は誰かが助けてくれることを望んでいました...
だから...私はmultiprocessing
ベースのPythonnetsnmp
ポーラーを書いています(データを収集した後に多くのデータ構造操作を行うので、オーバーヘッドは通常よりも価値がありますthreading
)。完全なPythonインターフェイス(適切なOID操作、バルクウォークなど)が見つからなかったため、自分のctypes
バインディングを修正することにしました。私はsnmp_sess_synch_response()
実際にクエリを実行するために使用します。
シングルスレッドを実行すると、問題なく動作します(クエリを実行して結果を取得できます)。しかし、継承されたインスタンス内から(python)netsnmpクラスを呼び出すとProcess
; に到達するsnmp_sess_synch_response()
と、スレッドは停止し、戻りコード「2」でsnmp_errstring()
戻り、「不明なエラー」を返します。
私が見つけた唯一の情報は、http://net-snmp.sourceforge.net/docs/README.thread.htmlのシングルAPIを使用する必要があり、最初のMIBビルドはスレッド化の前に行う必要があるということです。シングルAPIを使用しており、ワーカーを生成する前にMIBを構築しています。
誰かがこれをデバッグするためにどのように進めるべきか考えていますか?マルチスレッドはctypesでどのように処理されますか?なぜ使用するmultiprocessing
と、動作中のシングルスレッドポーラーがこのように停止するのでしょうか。
私はredhat664ビットとpython2.6.6でnet-snmp5.5-41.el6を使用しています。
snmp - mibgroup フォルダーが Agent フォルダーに存在しない
プライベート MIB をエージェントに追加するときに、.c ファイルと .h ファイルを作成しました。これらのファイルは、agent/mibgroup フォルダーに保存する必要があります。しかし、私の場合、mibgroup フォルダーが存在しないため、作成して .c および .h ファイルをその中に保持しました。その後、私は
このエラーメッセージが表示されます:
これは、configure スクリプトが存在しないことを意味します。私の質問は、どこからこのスクリプトまたは mibgroup フォルダーを実行できるようにするかということです。