はじめに
前編では、Swatchの基本的な使い方について、具体例を用いて解説しました。後編は、本番運用のための設定について解説します。
設定ファイルの作成
secureログを監視するための設定を行い、必要な外部コマンドを作成します。
設定する監視機能は、次のとおりです。
- Swatchの監視ログを/var/log/swatch.logに出力する。
- suコマンドの認証が失敗した時、マッチしたログを赤色で表示し、vagrantユーザーにメールで送信する。
- suコマンドの認証が失敗した時、マッチしたログを/var/log/swatch/secure.logにロギングする。
- sudoコマンドが実行された時、マッチしたログを水色で表示する。
1.設定ファイルの作成
$ sudo mkdir -p /etc/swatch/conf /etc/swatch/script $ sudo vi /etc/swatch/conf/secure.conf
設定ファイルを下記のとおり編集します。
watchfor /authentication failure/ echo red mail addresses=vagrant,subject="ALERT su: authentication failure" pipe "/etc/swatch/script/logging.sh secure" watchfor /sudo:/ echo cyan

2.ロギングコマンドの作成
マッチした行をロギングするコマンドを作成します。
$ sudo vi /etc/swatch/script/logging.sh
#!/bin/sh
DEST=/var/log/swatch
NAME=$1
FILE=${DEST}/${NAME}.log
read BUFFER
touch ${FILE}
echo "${BUFFER}" >> ${FILE}

作成したコマンドに実行権を付与します。
$ sudo chmod 0700 /etc/swatch/script/logging.sh
自動起動の設定
自動起動のためのSwatch起動コマンドを作成し、動作確認を行った後、自動起動設定を行います。
1.起動コマンドの作成
Swatchをデーモンとして起動するコマンドを作成します。
sudo vi /etc/rc.d/init.d/swatch
#/bin/sh
#
# swatch
#
# chkconfig: 2345 90 35
# description: swatch start/stop script
#
. /etc/rc.d/init.d/functions
[ ! -d /var/log/swatch ] && mkdir -p /var/log/swatch
PATH=/bin:/sbin:/usr/bin:/usr/sbin
start() {
ls /var/run/swatch_*.pid 1> /dev/null 2>&1
if [ $? -ne 0 ]; then
echo -n "Starting swatch"
pno=0
RET=0
for conf in /etc/swatch/conf/*.conf
do
log=`basename $conf | cut -d. -f1`
if [ -f /var/log/$log ]; then
pno=`expr $pno + 1`
swatch -c $conf -t /var/log/$log --daemon
--pid-file /var/run/swatch_$pno.pid 1>> /var/log/swatch.log 2>& 1
RET=$?
[ $RET != 0 ] && return $RET
fi
done
if [ $pno -gt 0 ]; then
echo
[ $RET = 0 ] && touch /var/lock/subsys/swatch
fi
return $RET
else
echo "swatch already started"
fi
}
stop() {
ls /var/run/swatch_*.pid 1> /dev/null 2>&1
if [ $? -eq 0 ]; then
echo -n "Stopping swatch"
for pid in /var/run/swatch_*.pid
do
kill $(cat $pid)
rm -f $pid
done
echo
rm -f /var/lock/subsys/swatch /tmp/.swatch_script.*
else
echo "swatch is not starting"
fi
}
status() {
ls /var/run/swatch_*.pid 1> /dev/null 2>&1
if [ $? -eq 0 ]; then
echo -n "swatch (pid"
for pid in /var/run/swatch_*.pid
do
echo -n " `cat $pid`"
done
echo ") is running"
else
echo "swatch is stopped"
fi
}
case "$1" in
start) start;;
stop) stop;;
restart)stop && start;;
status) status;;
*) echo "Usage: swatch {start|stop|restart|status}" && exit 1;;
esac
exit $RET

作成したコマンドに実行権を付与します。
$ sudo chmod 0755 /etc/rc.d/init.d/swatch
2.動作確認
作成したコマンドを起動し、動作を確認します。
$ sudo /etc/rc.d/init.d/swatch start

sudoコマンドを実行し、/var/logフォルダを表示します。
$ sudo ls /var/log

swatch.logにログが水色で表示されます。

suコマンドを実行し、rootログインを試みます。
$ su -

ログインに失敗すると、swatch.logにログが赤色で表示されます。

また、secure.logには、マッチしたログが表示されます。



3.自動起動設定
作成した起動コマンドを、自動起動設定します。
$ sudo chkconfig --add swatch $ sudo chkconfig swatch on

まとめ
ここまで、前編、後編の2回に渡って、Swatchの基本的な使い方から本番運用の設定について解説しました。
本記事を参考に、本番システムのリアルタイム監視にチャレンジしてみましょう。
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。



















No Comments