電子書籍の厳選無料作品が豊富!

現在VineLinuxにNet-SNMP ver5.2.2を
インストールした環境で
Trapを送信するPerlスクリプトを作成しております。
やりたいことは、マネージャに対し
SNMPv2cのTrapをポストすることです。
# 現段階ではSNMPv2であればどのようなTrap
# でも構いません。

net-snmp-5.2.2/perl/SNMP/README
の内容にならって、下記のようなスクリプトを
作成しました(一部を抜粋)。

------- スクリプト Start -------
《 省 略 》
# TrapSessionオブジェクトを生成
$sess = new SNMP::TrapSession(DestHost=>$host, Community=>$comm);

# Trap送信
$sess->trap(oid => 'snmpRisingAlarm',
uptime => 1234,
[[ifIndex, 1, 1],
[sysLocation, 0, "here"]]);

《 省 略 》
------- スクリプト End -------
READMEによると上記フォーマットは
v2のものとなるはずですが、
本処理によって送信されるTrapのバージョンは
v1となってしまいます。
また、oid部分を変更しても
送信するTrap内容の変化はなく、さらに

$sess->trap();

とパラメータ無しに変更しても
同じ内容のTrapが送信されているようです...。
全てにおいて勉強不足状態での質問で
大変恐縮ではありますが、
御存じの方がいらっしゃいましたら、
ご教授お願い致します。

A 回答 (1件)

まず、SNMPが何かもわからない素人であることを先に述べておきますが:-)




READMEを見ると、

Version - default '1', [2 (same as 2c), 2c, 3]

という項目があります。ので、TrapSessionでVersion => 2 を渡すと解決しないでしょうか。

また、以下のCPANモジュールもあるようです。

http://search.cpan.org/~dtown/Net-SNMP-5.2.0/
    • good
    • 0
この回答へのお礼

ありがとうございます。
実は本件を書き込んだあと,
TrapSessionにVersionのパラメータが
あることに気づきを2を渡すようにしたのですが,
結果はTrap自体ポストすることが出来なくなりました;
# ってことはこのモジュールはv1Trapしか
# ポストできないのかと考え始めました

私はSNMPだけでなくperlについても素人で,
今まで開発はCでしか行ったことがありません...。
webサイトで色々みていたところ,
use NET::SNMPと宣言するモジュールについては
snmmpv2_trap()というメソッドが
あるらしく,このモジュールを裏で探していたんです。
CPANってところで公開されていたんですね。
Perl自体やモジュールに関する知識が乏しいため
大変助かりました!!

CPANのモジュールで試してみたいと思います!!
APIのI/Fを調べるのに,また時間を費やしそうですが...
本当にありがとうございます。

お礼日時:2006/02/23 13:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!