Windows 上で Net-SNMP を使用して、監視システムでアラームをトリガーするトラップをエミュレートしようとしています。
セットアップは次のとおりです:
- トラップを送信するWindows 7クライアント
- トラップ送信用ソフトウェアとしてのNet-SNMP
- NMS として Adventnet ManageEngine OpManager を搭載した Linux (関連なし)
これが私が達成しようとしていることです
OID .1.3.6.1.4.1.5089.1.0.1 (NMS にロードした MIB による) のトラップを送信し、それに何らかのメッセージを送信して、NMS でアラームが受信されるかどうかを確認します。ファイアウォールで実際にトラップを送信していることはわかりますが、その内容はわかりません。
これまでの私の試みは次のとおりです:
snmptrap.exe -v 2c -c xxxxxxx 192.168.100.65 '' 6 0 .1.3.6.1.4.1.5089.1.0.1 s "123456"
しかし、snmptrap の例を記載した適切なドキュメントが見つからないようです。基本的に、次のことを知っておく必要があります。
- '' <- なぜこれが必要なのでしょうか? 省略してもトラップは送信されます
- 6 <- エンタープライズの一般的なトラップだと思います。これは正しいですか?
- 0 <- わかりません。これには何らかの値が必要です
- .1.3.6.1.4.1.5089.1.0.1 <- エンタープライズ固有の OID と思われますが、これにさらに数字が続く必要があります。
- s <- は文字列を示します
- "123456" <- 単なるランダムなテスト文字列...
これは私にはあまり意味がないので、もし誰かがこれについて説明していただければ大変ありがたく思います。
答え1
次のことを試してください。
snmptrap.exe -v 2c -c xxxxxxx 192.168.100.65
'' .1.3.6.1.4.1.5089.1.0.1 .1.3.6.1.4.1.5089.2.0.999 s "123456"
'' <- v2c トラップの最初のパラメータはエージェントの稼働時間です。これは必須であり、空のパラメータは現在の値に置き換えられます。
.1.3.6.1.4.1.5089.1.0.1 <- トラップOID
.1.3.6.1.4.1.5089.2.0.999 <- varbind (これはMIBで文字列値として定義する必要があります)
s <- は文字列を示します
"123456" <- 単なるランダムなテスト文字列...
これにより、次の内容の SNMPv2c トラップが生成されます (Wireshark で表示)。
variable-bindings: 3 items
1.3.6.1.2.1.1.3.0: 878104
1.3.6.1.6.3.1.1.4.1.0: 1.3.6.1.4.1.5089.1.0.1 (iso.3.6.1.4.1.5089.1.0.1)
1.3.6.1.4.1.5089.2.0.999: 31323334353 (this is 123456 octet string)
この出力は Linux 上の snmptrap から取得されますが、Windows の場合と同じようです。
答え2
ネットSNMPは忘れてください。面倒なことが多すぎます。MIBブラウザをダウンロードしてください。http://ireasoning.com/mibbrowser.shtml... mib ファイルをロードすると、すべての SNMP トラップを表示および送信できるようになります。
答え3
私も完全には理解していませんが、これは私にとってはうまくいきます(試行錯誤の方法 ;)
snmptrap -v 2c -Ci -u ユーザー -c コミュニティ ホスト '' .xyzqoid 1 s 文字列 2 s 文字列2