CodeZine(コードジン)

特集ページ一覧

net-snmpについて(Trap設定)

net-snmpによるTrapの設定方法について

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/09/16 14:00

目次

実際のTrapの運用について

6.3 実際のTrapの運用について

6.3.1 実行手順

 httpdを起動、その次にsnmpdを再起動します。今回も簡易版マネージャを使用するので、snmptrapdも起動します。

% service httpd start
httpd を起動中: httpd:             [  OK  ]
% 
% /etc/init.d/snmpd restart
snmpd を停止中:                    [  OK  ]
snmpd を起動中:                    [  OK  ]
% 
% /etc/init.d/snmptrapd restart
snmptrapd を停止中:                [失敗  ]
snmptrapd を起動中:                [  OK  ]
% 

 httpdを落とします。

% service httpd restart

 しばらくすると(約1分未満)、/var/log/snmpd.logにsnmptrapからの情報が出力されるのが確認できます。同様にメールも届きます。

6.3.2 詳細情報の取得

 Trapされた情報を見ると、prErrorFlag の値くらいしか届いていません。それ以外の項目も一緒に参照するには、もう少し追記情報が必要です。

/usr/share/snmp/snmpd.conf
notificationEvent evPrEntry prNames prMin prMax prCount prErrMessage prErrorFlag
monitor -u _internal -e evPrEntry -r 30 "prErrorFlag" prErrorFlag   != 0

 notificationEvent は、Trapにおけるイベント名とその時に一緒に出力するOIDを指定します。monitor の引数、-e には、notificationEvent で設定したイベント名を設定します。

 httpdを起動、その次にsnmpdを再起動します。しばらくしてhttpdを落とします。1分未満の間にTrap受信を確認できるはずです。

 5章のucdavisサブツリー内でprTable以外の項目に対して同様にTrapを送る場合の例も記載します。

/usr/share/snmp/snmpd.conf
notificationEvent evPrEntry prNames prMin prMax prCount prErrMessage prErrorFlag
notificationEvent evMmEntry memTotalSwap memTotalReal memTotalFree 
 memShared memBuffer memCached memSwapError
notificationEvent evCmEntry extNames extCommand extOutput extResult
notificationEvent evDkEntry dskPath dskDevice dskMinimum dskErrorFlag
notificationEvent evLaEntry laNames laLoad laConfig laErrorFlag
notificationEvent evFlEntry fileName fileSize fileMax fileErrorFlag

monitor -u _internal -e evPrEntry -r 30 "prErrorFlag"   prErrorFlag   != 0
monitor -u _internal -e evMmEntry -r 30 "memSwapError"  memSwapError  != 0
monitor -u _internal -e evCmEntry -r 30 "extTable"      extResult     != 0
monitor -u _internal -e evDkEntry -r 30 "dskErrorFlag"  dskErrorFlag  != 0
monitor -u _internal -e evLaEntry -r 30 "laErrorFlag"   laErrorFlag   != 0
monitor -u _internal -e evFlEntry -r 30 "fileErrorFlag" fileErrorFlag != 0

 それとせっかくなので、Trapの際に配信されるメールの主題をTrapごとに変えてみます。具体的にはsnmptrapd.confを下記の通りに書き換えます。

/usr/share/snmp/snmptrapd.conf
authCommunity log,execute,net localcom
traphandle .1.3.6.1.4.1.2021.2.*  /bin/mail -s 
  "prTable Trap_Happen" root@localhost.localdomain
traphandle .1.3.6.1.4.1.2021.10.* /bin/mail -s 
  "laTable Trap_Happen" root@localhost.localdomain
traphandle .1.3.6.1.4.1.2021.15.* /bin/mail -s 
  "fileTable Trap_Happen" root@localhost.localdomain
traphandle default /bin/mail -s 
  "default Trap_Happen"  root@localhost.localdomain

 traphandle の第2引数には具体的なOIDかワイルドカード付きのOID、もしくはdefaultを設定します。prNames とか laNames 等の名称ではダメらしいです。

6.4 終わりに

 以上でTrapの送信・受信環境の構築手順を終えます。

 冒頭でも話しましたが、SNMPはUDPプロトコル上で実装されている都合上、単発で発生するTrapに頼る設計はやめた方が良いです。しかしTrapを受信した時の挙動については特定の実行ファイルを動作させるなど、運用上のルールを明確にすると、かなり強力な監視ができると思います。

 次回は、当レポートの肝である、独自に作成したアプリケーションをSNMPで監視するために、拡張MIB・拡張エージェントを作成する方法について述べていきたいと思います。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:net-snmpについて

著者プロフィール

  • 赤松 エイト(エイト)

    (株)DTSに勤てます。 WebアプリやJavaやLL等の上位アプリ環境を密かに憧れつつも、ず~っとLinuxとかHP-UXばかり、ここ数年はカーネル以上アプリ未満のあたりを行ったり来たりしています。 mixiもやってまして、こちらは子育てとか日々の日記メインです。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5