参考
設定
/etc/snmp/snmptrapd.conf
# 受信するコミュニティ名を指定。ここではpublic222とした例
authCommunity log,execute,net public222
# 受信したらメールで転送
traphandle default /bin/mail -s "snmptrap" to@address
snmptrapd の起動
起動
/sbin/service snmptrapd start
ログ出力先の変更
標準だと /var/log/messages
に出力される。
別の箇所にも出力するには以下。( /var/log/snmptrapd.log に出力例)
/etc/sysconfig/snmptrapd.options
# snmptrapd command line options
# OPTIONS="-Lsd -p /var/run/snmptrapd.pid"
+ OPTIONS="-Ls6 -p /var/run/snmptrapd.pid"
/etc/rsyslog.conf
+ local6.* /var/log/snmptrapd.log
service rsyslog restart
service snmptrapd restart
受信したメッセージを元に動作を変える
/etc/snmp/snmptrapd.conf
# 受信するコミュニティ名を指定。ここではpublic222とした例
authCommunity log,execute,net public222
# 受信したらメールで転送
# traphandle default /bin/mail -s "snmptrap" to@address
traphandle default /etc/snmp/trap_handler.sh
- /etc/snmp/trap_handler.sh
#!/bin/bash
msg=$(</dev/stdin)
# メッセージにTESTが含まれていなければメール送信
if [[ "$msg" != *"TEST"* ]]; then
echo "$msg" | /bin/mail -s "[trap_handler] " to@address
fi