.
Counter: 23115, today: 2, yesterday: 2

Swatchインストール :D

Swatchとは?

リアルタイムにログを監視し、決定したキーワードがログに現れるとアクションを
起こすことをさせる監視ツールです。

今回用いる動作環境
・RedHatLinux9.0
・作業ディレクトリ = /home/swatch

Perlモジュールのインストール準備

最新版にて検証したところ、Swatchを動かすためには5つのPerlモジュールが必要です。

必要なPerlモジュールはCPAN からダウンロードが可能です。

モジュール名   検証に用いたバージョン
・Date::Manip   (DateManip-5.44.tar.gz)
・Date::Calc    (Date-Calc-5.4.tar.gz)
・Time::HiRes   (perl-Time-HiRes-1.38-3.i386.rpm)
・File::Tail    (File-Tail-0.99.1.tar.gz)
・Date::Parse   (TimeDate-1.16.tar.gz)
・swatch        (swatch-3.1.1.tar.gz)

※Time::HiRes(Time-HiRes-1.73.tar.gz) モジュールに関してはtarballでインストールができなかったため "rpm" にてインストールしました。
(RedHat9.0CD-ROM2枚目の内容にあります)

Perlモジュールのインストール実施

Swatchを動かすためにそれぞれのPerlモジュールをインストールします。
(順番を考慮する必要があるかもしれませんが、下記手順で問題ありません)

手順[1] Date::Manipのインストール
 # cd /home/swatch
 # tar xvfzp DateManip-5.44.tar.gz
 # cd DateManip-5.44
 # perl Makefile.PL
 # make
 # make install

手順[2] Date::Calcのインストール
 # cd /home/swatch
 # tar xvfzp Date-Calc-5.4.tar.gz
 # cd Date-Calc-5.4
 # perl Makefile.PL
 # make
 # make install

手順[3] Time::HiResのインストール
 # cd /home/swatch
 # rpm -ivh perl-Time-HiRes-1.38-3.i386.rpm

手順[4] File::Tailのインストール
 # cd /home/swatch
 # tar xvfzp File-Tail-0.99.1.tar.gz
 # cd File-Tail-0.99.1
 # perl Makefile.PL
 # make
 # make install

手順[5] Date::Parseのインストール
 # cd /home/swatch
 # tar xvfzp TimeDate-1.16.tar.gz
 # cd TimeDate-1.16
 # perl Makefile.PL
 # make
 # make install

Swatchのインストール
Swatch本体もPerlモジュールのインストール方法とさほど変わりません。

swatchのインストール
 # cd /home/swatch
 # tar xvfzp swatch-3.1.1.tar.gz
 # cd swatch-3.1.1
 # perl Makefile.PL
 # make
 # make install

Swatchの設定

Swatchには設定ファイルのサンプルが含まれているので、このサンプルファイルを規定のディレクトリにコピーしてひな型ファイルとして利用します。ここではSwatchの設定ファイルを、".swatchrc"とし/root/ に配置します。

ひな型ファイルを利用する
# cd /home/swatch/swatch-3.1.1/examples
# cp -pf swatchrc.personal /root/.swatchrc

★POINT!!
/var/log/**** 内のログファイルの多くは、root権限でなければ読込めませ
ん。一般ユーザーでもSwatchを起動させることは可能ですが、対象のログファ
イルに読取り権限が必要となります。

パターンおよびアクション
設定ファイルの書式は以下のようになります。

watchfor   /パターン/
          アクション1
          アクション2

☆パターン
マッチさせたい任意の文字列を、watchforの後に"/"で挟み記述します。
ここで記述するパターンにはPerlの正規表現を使用することが可能です。

☆アクションn
パターンでマッチした場合の処理動作を記述します。

関連サイト::パターンおよびアクション記述ルール

■Swatchの起動

Swatchを起動させログの監視を開始させます。

(起動)
# /usr/bin/swatch -c /root/.swatchrc -t /var/log/messages >/dev/null 2>&1 &
 & =バックグラウンドにて実施

(プロセス確認)
# ps aux |grep tail
root 3238 0.0 0.4 3904 588 pts/1 S 20:47 0:00 /usr/bin/tail-n 0 -f /var/log/messages

■Swatchの自動起動スクリプト

起動している"tail" を kill させるスクリプトは下記のとおりです。最後にパーミッションの変更を忘れずに!

(1) # vi /etc/rc.d/init.d/swatch を作成
(2) # chmod 755 swatch

(自動起動スクリプト)
#! /bin/sh
#
# chkconfig: 2345 99 99
# description: tcpserver
# Source function library.
. /etc/rc.d/init.d/functions

RETVAL=0

# See how we were called.
case "$1" in
        start)
              echo -n "Starting Swatch: "
              /usr/bin/swatch -c /root/.swatchrc -t /var/log/messages >/dev/null 2>&1 &
              RETVAL=$?
              echo
              ;;

        stop)
              echo -n "Stopping Swatch: "
              killproc tail
              RETVAL=$?
              echo
              ;;

        restart)
              $0 stop
              $0 start
              RETVAL=$?
              ;;

        *)
              echo "Usage: swatch {start|stop|restart}"
              exit 1

esac
exit $RETVAL

■OS起動時に自動的に立ち上げる

/etc/rc.d/ 以下にシンボリックリンクを作成する。


(移動)
# cd /etc/rc.d/rc3.d
(シンボリックリンクの作成)
# ln -s ../init.d/swatch ./S99swatch

これで起動時にswatchが自動的に立ち上がります。

■ログローテーション
監視していて気付いたことはログローテーションされると古いログファイルを見てしまうことです。これを回避するために以下の設定を /etc/cron.daily/logrotate へ追記しました。

# vi /etc/cron.daily/logrotate

#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
/etc/rc.d/init.d/swatch stop  ⇒ 追記
/etc/rc.d/init.d/swatch start ⇒ 追記


リロード   差分 ソース ファイル添付 添付ファイル一覧   Wikiトップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
トラックバック [ トラックバック(0) ]
トラックバック URL: http://linuxexpert.ne.jp/modules/pukiwiki/tb/99

Expert Menu
最新記事
なぜここへ
Yahoo Japanから
検索結果から
友人に聞いて
前からURLを知っていた
他サイトからリンク
最新バージョンの確認

Linuxexpert is one of the service presented by InfomationSquare. / OmakaseBlog Login  |  Register Now!