snmptrapコマンドでgeneric trap

snmptrapコマンドでgeneric trapを発生させるやり方がいまいち分かんなくてずーっと調べてた。分かったのでメモ。
まずはコマンドが入ってるか確認

[root@localhost ~]# which snmptrap
/usr/bin/which: no snmptrap in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

こんな感じで入ってなかった場合、インストールする。インターネットにつながってるredhat系のOSの場合yumでおk。

[root@localhost ~]# yum install net-snmp-utils

これでsnmptrapコマンドが使えるようになる。
まずはLinkDownトラップ。バージョン1の場合こんな感じ。

[root@localhost ~]# snmptrap -v 1 -c public 192.168.2.27 .1.3.6.1.4.1.8072.3.2.10 192.168.2.27 2 0 ''

末尾の2 0というところがポイントで、2がLinkDownを表している。後ろの0はspecific idなので、generic trapの場合必ず0を指定する。.1.3.6.1.4.1.8072.3.2.10のところがenterprise-oid。なんかバージョン1だとgeneric trapでもenterprise-oidが指定できるみたい。
んで同じくLinkDownトラップ、バージョン2cの場合こんな感じ。

[root@localhost ~]# snmptrap -v 2c -c public 192.168.2.27 '' .1.3.6.1.6.3.1.1.5.3

.1.3.6.1.6.3.1.1.5.3てところがtrap oidで、generic LinkDownトラップの場合は、このとおり.1.3.6.1.6.3.1.1.5.3て指定すればオッケーみたい。バージョン2cのほうがすっきりしてる!!!
LinkUpトラップの場合こんな感じ。

[root@localhost ~]# snmptrap -v 1 -c public 192.168.2.27 .1.3.6.1.4.1.8072.3.2.10 192.168.2.27 3 0 ''
[root@localhost ~]# snmptrap -v 2c -c public 192.168.2.27 '' .1.3.6.1.6.3.1.1.5.4



このページを参考にしました。
第8回 SNMPによる異常値検出テクニック (2/7) - ITmedia エンタープライズ