2008年5月10日土曜日

snmptrapの設定について

LinuxでSNMPのtrapを受け取れるようにするには、snmptrapdをインストールすればよい。
※インストールについては、各ディストリビューションに依存するので割愛

とりあえず、動かせるようになったならば、/etc/snmp/snmptrapdを編集する
が、とりあえず、以下を記述すれば、メールは飛ぶようになる。

traphandle default /usr/bin/traptoemail -f <メールのfrom> -s <送付先メールアドレス>

※manページより
traphandle OID|default PROGRAM [ARGS ...]
traphandleはtrapを受けたら行う動作の指定
defaultだとtrapの種類によらず、PROGRAMを実行する。
OIDを指定すれば、そのOIDの種類によってPROGRAMの実行を分けることができる。

たとえば、上記のようにdefaultを記述しておけば、問答無用に/usr/bin/traptoemailを実行するわけ。

/usr/bin/traptoemailはsnmp-utilパッケージに付随する、標準出力をメールに整形して送付するプログラムというかPerlスクリプト。


とりあえずdefaultを設定すればおkだが、TRAPによってはメールを送付したくないとか、他の動作をさせたい場合、以下のようにOIDを個別に指定すればよい。

traphandle FOUNDRY-SN-TRAP-MIB::snTrapL4RealServerPortDown /root/bin/output_null.sh

これはOID=FOUNDRY-SN-TRAP-MIB::snTrapL4RealServerPortDownの場合、/root/bin/output_null.shを実行するというもの。
output_null.shは標準入力を/dev/nullに捨てるプログラム。
ちなみに、OIDはMIBを指定できるし、もしMIBファイルがない場合は数値でもおk(なはず)。。。

・snmptrapdの起動オプションについて
/etc/init.d/snmptrapdのデフォルトのオプションは以下のようになっていた。
-Lsd -p /var/run/snmptrapd.pid

-Lsdは
-L[efos]
Specify where logging output should be directed (standard error
or output, to a file or via syslog). See LOGGING OPTIONS in
snmpcmd(1) for details.
This option deprecates the -l -o -P and -s options.


つまり、ログ出力のオプション
ここではLsdと指定しているので、snmpcmdのmanによると、

-Ls FACILITY
Log messages via syslog, using the specified facility ('d' for
LOG_DAEMON, 'u' for LOG_USER, or '0'-'7' for LOG_LOCAL0 through
LOG_LOCAL7).

ということになり、LOG_DAEMONファシリィティで出力する。

-p /var/run/smtptrapd.pidはPIDファイルを作成する。
/etc/init.d/snmptrapdの中で、STOP時にPIDを参照するようになっているので、これは必修。

で、今回はOIDのFOUNDRY-SN-TRAP-MIB::snTrapL4RealServerPortDownで、後半部分だけほしかったので、-Osを追加
OPTIONS="-Lsd -Os -p /var/run/snmptrapd.pid"
→なぜなら、送付メールにそのまま出ると件名が長くてうざいから(;><)

てな感じで、とりあえず運用してみる。

時間があれば、ちょこちょこといじってみるつもり。

0 件のコメント: