VineLinuxパフォーマンスアッププロジェクト:0181

■[ユーティリティ/セキュリティ]ログ監視ツール"swatch"を使ってみよう!■

 サーバ管理者にとって、「ログの監視」はつきものです。沢山のログの中から重要なログを探し出すには手間がかかりますよね。
 そこで今回はログファイル中の記述を検知して様々なアクションを実現できるswatchというツールをご紹介します。





 swatchは「ログ監視ツール」と呼ばれ、事前に設定したルールに沿ってファイル中の記述を検査し、ルールに該当するものがあった場合に様々な手段で報告をしてくれるものです。

 当サイトにおいても以前に少し紹介しましたので、実現可能な報告手段などについてはこちらのページをご覧ください。

▼事前準備

 swatchを動かすためには、perlのオプションパッケージが必要です。VineLinuxの場合、Synapticでperl系のパッケージを全部ダウンロード・インストールしておくのが無難でしょう。

 さらに、検知時にメールで報告ができるようにするためには、perlのMail:SendMailモジュールが必要です。
 VineLinuxの場合、このモジュールがどのパッケージにも収録されていないようですのので、当サイトにて用意したこのパッケージをダウンロードしてインストールしてください。

▼swatchのダウンロード・インストール

 最新のswatchはこちらのページの左下にある"Released Files"リンクからダウンロード可能です(sourceforgeにリンクされています)。
 rpmパッケージについてはやや古めですが、当サイトにて用意しましたのでこのパッケージをダウンロードしてください。

 ダウンロードが終わったらインストールします。まずダウンロードしたファイルがあるディレクトリまで移動します。
 最新版(tar.gzパッケージ)の場合は、

  tarコマンドで展開→makeコマンドでコンパイル→make installでインストール処理

という流れです。
 rpmパッケージ版の場合は、

  rpm -ivh swatch-3.1.1-1.rh9.rf.noarch.rpm

 でインストール可能です。

 しかしこのままではswatchの起動に必要なperlのモジュールファイルがしかるべき場所にないため、VineLinuxでは起動しません。そこでその「しかるべき場所」にperlのモジュールファイルを移動またはコピーさせます。
 以下のコマンドを実行します。

  cp /usr/lib/perl5/vendor_perl/5.8.0/Swatch /usr/lib/perl5/5.8.6

 このSwatchディレクトリ中には"Actions.pm"(検知後の対応手段を記載したファイル)と"Throttle.pm"(再検知時の通知抑制について記載されたファイル)が入っています。

▼アクションファイルの設定

 ここまで作業が終わったら、次に検知基準と検知後の対応を定義します。swatchにはアクションファイルが必要で、このファイルに検知したい文字列と検知後の対応をルールに従って記載します。
 アクションファイルはファイル名を".swatchrc"として、swatchを起動させるユーザのホームディレクトリ下に置くのが一般的です。また、検知したいログファイルが複数ある場合にはログファイルごとにわかりやすい設定ファイル名を付与することも可能です。

 サンプルとして以下の2つのファイルを用意しましたので、これを利用しながら独自にルールを設定してください。

  ●アクションファイル1 (←".swatchrc"と名前を変更してダウンロードしてください。)
  ●アクションファイル2 (←".swatchrc.error_log"と名前を変更してダウンロードしてください。)

 アクションファイル1は、
  /var/log/messages中に"error"という記述が追記されたら、"root@abc.jp"と"abc-def@docomo.ne.jp"宛てにメールを送る
 というものです。

 アクションファイル2は、Apache Webサーバのエラーログ"error_log"中に、
  "caught SIGTERM, shutting down"という記述が追記されたら、"root@abc.jp"と"abc-def@docomo.ne.jp"宛てにメールを送る
  "script"という記述が3行連続追記されたら、"root@abc.jp"と"abc-def@docomo.ne.jp"宛てにメールを送る

 というものです。

 上記の例では「メールを送る」という手段のみで説明しましたが、もちろんこれ以外にも設定は変更できます。
 ルールについての詳細は上記でも紹介したこちらのページをご覧ください。

▼自動起動の設定

 通常、swatchの起動はターミナル上から

  swatch &

 と入力して起動させますが、毎回サーバを起動させた後に入力するのは面倒です。
 そこで、サーバ起動時に自動的に起動するように設定します。

 設定は簡単です。rootユーザ権限で/etc/rc.localをテキストエディタ等で開き、swatchの起動コマンドを最下部に記載するだけです。

 ちなみに、上記アクションファイル2つを基にrootユーザ権限でswatchを自動起動させるには、/etc/rc.localの最下部に以下のように記述します。

  #swatch自動起動設定
  /usr/bin/swatch &
  /usr/bin/swatch -c /root/.swatchrc.error_log -t /var/www/log/error_log &


 1行目はコメント記述です。

 2行目の"/usr/bin/swatch &"がアクションファイル1に相当します。
 デフォルトで検知対象のログファイルは/var/log/messagesになっています。

 3行目の記述がアクションファイル2に相当します。
 ここではオプション"-c"でアクションファイルを指定し、オプション"-t"で検知対象のログファイルを指定しています。



 swatchはシンプルな仕組みで様々な機能があるので、サーバそれぞれに適したルールと報告手段を制定したいものです。




プロジェクト ホームへ戻る