■snmptrapdの設定
主にネットワーク機器でSNMP Trapの設定を行うことがありますが、受け手(SNMP Manager)がないと利用できません。有償のソフトなどあれば良いのですが、フリーで構築できるTrap ManagerをLinuxで構築します。まず、SNMP Trapをインストールします。
# yum install net-snmp net-snmp-utils |
authCommunityという設定を使って、どのSNMPトラップの受信を許可するかを設定します。 /etc/snmp/snmptrapd.confファイルを作成します。
# vi /etc/snmp/snmptrapd.conf authCommunity log,execute EXAMPLE-NET traphandle default /usr/bin/traptoemail -f fromaddres@example.co.jp \ -s xx.xx.xx.xx toaddress@example.co.jp |
上記のようにコミュニティ名「EXAMPLE-NET」からSNMPトラップを受け取り、コマンドの実行およびログの出力を行います。コマンドは traptoemailコマンドによりTrapをメールに変換して送信する内容となります。-fでfromアドレスを指定し、-sでsmtpサーバを指定 し、最後に宛先アドレスを指定します。
■プライベート MIBファイルの配置
デフォルトで標準MIBファイルは用意されていますが、メーカー機器別のプライベートMIBファイルは個別に用意しないといけません。デフォルトでは /usr/share/snmp/mibs配下にインストールされており、MIBファイルを追加したい場合はここに設置します。
定義ファイルの参照設定として以下のファイルを編集しSNMPTrapを再起動させます。
# vi /etc/sysconfig/snmptrapd # snmptrapd command line options # OPTIONS="-Lsd -p /var/run/snmptrapd.pid" OPTIONS="-Lsd -p /var/run/snmptrapd.pid -M /usr/share/snmp/mibs -m all" # /etc/rc.d/init.d/snmptrapd restart |
■ テストトラップの送信
Linuxからテスト的にトラップを送信してみます。以下のコマンドでトラップを生成可能です。
# snmptrap -v 2c -c public localhost '' systemStats 1 s "This is Test" |
これで上記で設定したメールアドレスに次のようなメールが送信されてきます。
Subject: trap received from localhost: UCD-SNMP-MIB::systemStats Host: localhost (UDP: [127.0.0.1]:42284->[127.0.0.1]) DISMAN-EVENT-MIB::sysUpTimeInstance 0:3:44:43.05 SNMPv2-MIB::snmpTrapOID.0 UCD-SNMP-MIB::systemStats ccitt.1 "This is Test" |
さらに/var/log/messagesに次のようなログが残っていればSNMP Trapは正常に動作しています。
snmptrapd[16329]: 2013-04-03 13:12:24 localhost [UDP: [127.0.0.1]:42284->[127.0.0.1]]:\ #012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1348305) 3:44:43.05# \ 011SNMPv2-MIB::snmpTrapOID.0 = OID: UCD-SNMP-MIB::systemStats#011ccitt.1 = STRING: "This is Test" |