Swatchによるログの常時監視

ログを監視して、特定の文字列が出力されると通知などをおこなえるツールとしてSwatchがあります。

Swatchを使えば、サーバやアプリケーションの異常を早期発見し、管理者に通知する事が可能になります。

Swatchは、CentOS-5の標準パッケージには含まれないため、ソースからインストールするか、RPMを探してインストールします。

なお、UNIXLifeでもRPMをこちらで提供しています。

 

 

インストール

Swatchはperlで書かれているアプリケーションです。ここではソースからインストールする手順をご紹介します。

Swatchは、こちらから入手してください。

ここでは、swatch-3.2.3を利用しました。

なお、Swatchをインストールする為に、依存するperlモジュールをインストールする必要があります。

必要なperlモジュールは以下の通りです。

perl-Date-Calc

perl-Bit-Vector

perl-Carp-Clean

perl-DateManip

perl-TimeDate

perl-File-Tail

 

CentOS-5を利用している場合は、標準で用意されている物をyumからインストールします。

yum install perl-Date-Calc perl-DateManip perl-TimeDate

 

File-TailはCentOS-5では提供されていないため、こちらから入手してください。

今回利用したのは、File-Tail-0.99.3です。

 

File-Tail-0.99.3のインストール

 tar zxvf File-Tail-0.99.3.tar.gz 
cd File-Tail-0.99.3 perl Makefile.PL 
make 
make test 
make install

 

perlモジュールのインストールが終了したら、Swatchをインストールします。

 tar zxvf swatch-3.2.3.tar.gz 
cd swatch-3.2.3 perl Makefile.PL 
make 
make test 
make install 
make realclean

以上でインストール作業は終了です。

 

 

Swatchの設定

Swatchの設定ファイルは、Swatchの実行ユーザのホームディレクトリにある、.swatchrcで行います。

ここでは、rootユーザでSwatchを実行する例を示しますので、設定ファイルは、/root/.swatchrcとします。

 

設定ファイルの書式

設定ファイルの内容は、監視する文字列および文字列発見時の処理方法です。

記載してある上から下へ、パターンにマッチしているかどうかを順番にチェックしていきます。

パターンにマッチすると、それに対応するアクションを実行します。

設定ファイルの書式は以下のようになります。

ignore  /パターン/ <---この文字列が含まれる場合は無視する

watchfor  /パターン/ <---この文字列が含まれる場合は、指定したアクションを実行する
	アクション1
	アクション2

 

パターンの書式

パターンにはPerlの正規表現を使用することができます。

よく利用される例を示します。

書式例 動作
/faile|error/ faileもしくはerrorにマッチ
/faile/,/error/ faileもしくはerrorにマッチ
/Failed/i 大文字小文字の区別なく、Failedにマッチ

 

アクションの書式

アクションには、主にコマンドの実行やメールの送信などがあり、複数指定可能です。

指定アクション 説明
echo ログ文字列をコンソールに表示
bell 3 beep音を3回ならす
exec コマンド コマンドやシェルスクリプトを実行する
mail メールアドレス,subject=件名 ログ文字列をメールで送信する

 

設定例

ここでは、/var/log/secureを監視します。

1つ目は、sshなどの認証でパスワードが不正な場合にマッチ

2つ目は、ログイン認証(PAM認証)に失敗した場合にマッチ

watchfor /Failed password/i
	echo
	mail root@localhost,subject=Swatch_Log

watchfor /authentication failure/i
	echo
	mail root@localhost,subject=Swatch_Log

 

 

Swatchの起動

Swatchの起動オプションは以下のの通りです。

swatch -c 設定ファイル -t ログファイル

 

通常はバックグラウンドで起動する為に、& を付けて起動します。

swatch -c /root/.swatchrc -t /var/log/secure &

 

自動起動させるには、/etc/init.d/rc.localに記載するか、独自にスクリプトを作成してください。

なお、複数のログファイルを監視したい場合は、複数のSwatchを起動する必要があります。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">