はじめに
Swatchは、Simple Watcherの名前が示すように、シンプルなリアルタイムログ監視ツールです。Swatchでは、指定した条件にマッチしたログを強調表示したり、コマンド実行などのさまざまなアクションを取ることが可能です。本記事では、Swatchのインストールから本番運用までのシステム構築方法を前編、後編の2回に分けて解説します。今回は、Swatchのインストールから、基本的な使い方について解説します。
前提条件
構築に必要なサーバー要件および、導入パッケージは下記のとおりです。
1.サーバー要件
サーバー要件は、次のとおりです。
ホスト名 | centos |
IPアドレス | 192.168.0.20 |
OS | CentOS 6.5 i386 |
サードパーティリポジトリ | EPEL |
2.導入するパッケージ
導入するパッケージは、次のとおりです。
パッケージ名 | バージョン |
---|---|
mutt | 1.5.20 |
mailx | 12.4 |
swatch | 3.2.3 |
インストール
必要なパッケージをインストールします。
1.メール関連パッケージのインストール
$ sudo yum -y install mutt mailx
[vagrant@centos ~]$ sudo yum -y install mutt mailx Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Including mirror: ftp.jaist.ac.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.iij.ad.jp Including mirror: www.ftp.ne.jp Including mirror: mirror.fairway.ne.jp * base: ftp.jaist.ac.jp Including mirror: ftp.jaist.ac.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.iij.ad.jp Including mirror: www.ftp.ne.jp Including mirror: mirror.fairway.ne.jp * extras: ftp.jaist.ac.jp * updates: centos.ustc.edu.cn Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package mailx.i686 0:12.4-7.el6 will be installed ---> Package mutt.i686 5:1.5.20-2.20091214hg736b6a.el6_1.1 will be installed --> Processing Dependency: urlview for package: 5:mutt-1.5.20-2.20091214hg736b6a.el6_1.1.i686 --> Processing Dependency: libtokyocabinet.so.8 for package: 5:mutt-1.5.20-2.20091214hg736b6a.el6_1.1.i686
2.Swatchのインストール
$ sudo yum --enablerepo=epel -y install swatch
[vagrant@centos ~]$ sudo yum --enablerepo=epel -y install swatch Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/metalink | 6.1 kB 00:00 Including mirror: ftp.jaist.ac.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.iij.ad.jp Including mirror: www.ftp.ne.jp Including mirror: mirror.fairway.ne.jp * base: ftp.jaist.ac.jp Including mirror: ftp.jaist.ac.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.iij.ad.jp * epel: ftp.jaist.ac.jp Including mirror: ftp.jaist.ac.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.riken.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.iij.ad.jp Including mirror: www.ftp.ne.jp Including mirror: mirror.fairway.ne.jp * extras: ftp.jaist.ac.jp * updates: centos.ustc.edu.cn epel | 4.2 kB 00:00 epel/primary_db | 4.9 MB 00:01 Setting up Install Process Resolving Dependencies --> Running transaction check
使用方法
Swatchの基本的な使用方法を解説します。
1.Swatchの構文
Swatchの構文は、次のとおりです。
watchfor 検索パターン アクション1 アクション2 アクション3 :
検索パターンには、正規表現を利用することができます。
構文を設定ファイルに複数記述することで、さまざまなアクションを実行できます。
主に使われるアクションは、下記のとおりです。
アクション | 内容 |
---|---|
echo | 検索パターンにマッチした行を表示する。色指定も可能です。 |
検索パターンにマッチした行をメール通知する。 | |
pipe | 検索パターンにマッチした行をパイプを通して外部コマンドに渡します。 |
threshold | 連続してマッチした行の表示を指定回数になるまで表示しません。 |
throttle | 連続してマッチした行の検出を一定時間抑止します。 |
以降では、それぞれのアクションの例を解説します。
なお、設定ファイルは、swatch.confとします。
2.echoアクション
マッチした行を表示します。
設定ファイルを下記のとおり編集します。
例では、su:にマッチした行を赤色で表示し、それ以外の行を標準色で表示します。
なお、watchfor /.*/の行とアクションを削除すると、マッチした行しか表示されません。
$ vi swatch.conf
watchfor /su:/ echo red watchfor /.*/ echo
テストファイルを作成します。
$ vi test1.log
su: pam_unix test
テストモードで実行します。
$ swatch -c swatch.conf -f test1.log
3.mailアクション
マッチした行を、件名と送信先を指定してメールします。
例では、ALERT suという件名のメールをvagrantユーザーに送信します。
watchfor /su:/ echo red mail addresses=vagrant,subject="ALERT su"
テストモードで実行します。
$ swatch -c swatch.conf -f test1.log
4.pipeアクション
マッチした行を、パイプを使って外部コマンドに渡します。
外部コマンドは、標準入力から渡された行を読み込みます。
例では、echo.shコマンドを実行して表示を変更しています。
watchfor /su:/ pipe "./echo.sh" mail addresses=vagrant,subject="ALERT su" watchfor /.*/ echo
外部コマンドを、下記のとおり作成します。
$ vi echo.sh
#!/bin/sh read BUFFER cat<<EOF ########## $BUFFER ########## EOF
コマンドに実行権を付与します。
$ chmod 0700 echo.sh
テストモードで実行します。
$ swatch -c swatch.conf -f test1.log
5.thresholdアクション
マッチした行が指定された回数出現した時に処理を行い、その後指定された時間検出を抑止します。
例では、reportにマッチした行が2回になった時点で行を出力し、その後1秒間検出を抑止します。
抑止が解除されると、検索が続行されます。
watchfor /repeat/ echo threshold track_by=/repeat/, type=both, count=2, seconds=1
テストファイルを作成します。
$ vi test2.log
test repeat 1 2 repeat repeat repeat repeat repeat repeat
テストモードで実行します。
$ swatch -c swatch.conf -f test2.log
6.throttleアクション
マッチした行が指定された回数出現した時に処理を行い、その後指定された時間検出を抑止します。
例では、1回目にreportにマッチした行を出力し、その後1秒間検出を抑止します。
watchfor /repeat/ echo throttle 00:00:01, key=/repeat/
テストモードで実行します。
$ swatch -c swatch.conf -f test2.log
インストールしたSwatchのバージョンでは、throttleは使用しないで、thresholdを使用することが推奨されています。
上記と同様のアクションは、下記のとおり記述できます。
watchfor /repeat/ echo threshold track_by=/repeat/, type=limit, count=1, seconds=1
[vagrant@centos ~]$ swatch -c swatch.conf -f test2.log *** swatch version 3.2.3 (pid:18901) started at 2014年 2月 6日 木曜日 10:20:00 JST test repeat 1 [vagrant@centos ~]$ sudo /etc/rc.d/init.d/swatch start Starting swatch
まとめ
ここまで、Swatchのインストールと基本的な使い方について解説しました。後編では、本番運用のための設定について解説します。
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments