【CentOS6】ログ監視ツール
logwatch
logwatchは定期的にログのサマリーをメールで送ってくれるツールです。
導入することで、日々大量に吐かれるログから必要な情報だけをサマリーしてくれるため、ログの監視がぐっと楽になると思います。
インストール
$ yum search logwatch 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile epel/metalink | 4.7 kB 00:00 * base: ftp.iij.ad.jp * epel: ftp.jaist.ac.jp * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp base | 3.7 kB 00:00 epel | 4.3 kB 00:00 epel/primary_db | 5.8 MB 00:03 extras | 3.4 kB 00:00 rpmforge | 1.9 kB 00:00 updates | 3.4 kB 00:00 ========================================================================== N/S Matched: logwatch ========================================================================== dmraid-events-logwatch.x86_64 : dmraid logwatch-based email reporting hostapd-logwatch.x86_64 : Logwatch scripts for hostapd fwlogwatch.x86_64 : Firewall log analyzer, report generator and realtime response agent logwatch.noarch : A log file analysis program Name and summary matches only, use "search all" for everything. $ yum install -y log watch 読み込んだプラグイン:fastestmirror インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: mirrors.hustunique.com * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp パッケージ log は利用できません。 パッケージ watch は利用できません。 エラー: 何もしません $ yum install -y logwatch 読み込んだプラグイン:fastestmirror インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: mirrors.hustunique.com * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package logwatch.noarch 0:7.3.6-52.el6 will be インストール --> 依存性の処理をしています: perl(strict) のパッケージ: logwatch-7.3.6-52.el6.noarch --> 依存性の処理をしています: perl(POSIX) のパッケージ: logwatch-7.3.6-52.el6.noarch --> 依存性の処理をしています: perl(Getopt::Long) のパッケージ: logwatch-7.3.6-52.el6.noarch --> 依存性の処理をしています: perl(File::Temp) のパッケージ: logwatch-7.3.6-52.el6.noarch --> 依存性の処理をしています: perl(Exporter) のパッケージ: logwatch-7.3.6-52.el6.noarch --> 依存性の処理をしています: perl(Date::Manip) のパッケージ: logwatch-7.3.6-52.el6.noarch --> 依存性の処理をしています: /usr/bin/perl のパッケージ: logwatch-7.3.6-52.el6.noarch --> トランザクションの確認を実行しています。 ---> Package perl.x86_64 4:5.10.1-141.el6_7.1 will be インストール --> 依存性の処理をしています: perl-libs = 4:5.10.1-141.el6_7.1 のパッケージ: 4:perl-5.10.1-141.el6_7.1.x86_64 --> 依存性の処理をしています: perl-libs のパッケージ: 4:perl-5.10.1-141.el6_7.1.x86_64 --> 依存性の処理をしています: perl(version) のパッケージ: 4:perl-5.10.1-141.el6_7.1.x86_64 --> 依存性の処理をしています: perl(Pod::Simple) のパッケージ: 4:perl-5.10.1-141.el6_7.1.x86_64 --> 依存性の処理をしています: perl(Module::Pluggable) のパッケージ: 4:perl-5.10.1-141.el6_7.1.x86_64 --> 依存性の処理をしています: libperl.so()(64bit) のパッケージ: 4:perl-5.10.1-141.el6_7.1.x86_64 ---> Package perl-Date-Manip.noarch 0:6.24-1.el6 will be インストール --> 依存性の処理をしています: perl(YAML::Syck) のパッケージ: perl-Date-Manip-6.24-1.el6.noarch --> トランザクションの確認を実行しています。 ---> Package perl-Module-Pluggable.x86_64 1:3.90-141.el6_7.1 will be インストール ---> Package perl-Pod-Simple.x86_64 1:3.13-141.el6_7.1 will be インストール --> 依存性の処理をしています: perl(Pod::Escapes) >= 1.04 のパッケージ: 1:perl-Pod-Simple-3.13-141.el6_7.1.x86_64 ---> Package perl-YAML-Syck.x86_64 0:1.07-4.el6 will be インストール ---> Package perl-libs.x86_64 4:5.10.1-141.el6_7.1 will be インストール ---> Package perl-version.x86_64 3:0.77-141.el6_7.1 will be インストール --> トランザクションの確認を実行しています。 ---> Package perl-Pod-Escapes.x86_64 1:1.04-141.el6_7.1 will be インストール --> 依存性解決を終了しました。 依存性を解決しました =========================================================================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 =========================================================================================================================================================================== インストールしています: logwatch noarch 7.3.6-52.el6 base 302 k 依存性関連でのインストールをします。: perl x86_64 4:5.10.1-141.el6_7.1 updates 10 M perl-Date-Manip noarch 6.24-1.el6 base 1.4 M perl-Module-Pluggable x86_64 1:3.90-141.el6_7.1 updates 40 k perl-Pod-Escapes x86_64 1:1.04-141.el6_7.1 updates 33 k perl-Pod-Simple x86_64 1:3.13-141.el6_7.1 updates 213 k perl-YAML-Syck x86_64 1.07-4.el6 base 75 k perl-libs x86_64 4:5.10.1-141.el6_7.1 updates 579 k perl-version x86_64 3:0.77-141.el6_7.1 updates 52 k トランザクションの要約 =========================================================================================================================================================================== インストール 9 パッケージ 総ダウンロード容量: 13 M インストール済み容量: 47 M パッケージをダウンロードしています: (1/9): logwatch-7.3.6-52.el6.noarch.rpm | 302 kB 00:00 (2/9): perl-5.10.1-141.el6_7.1.x86_64.rpm | 10 MB 00:03 (3/9): perl-Date-Manip-6.24-1.el6.noarch.rpm | 1.4 MB 00:01 (4/9): perl-Module-Pluggable-3.90-141.el6_7.1.x86_64.rpm | 40 kB 00:00 (5/9): perl-Pod-Escapes-1.04-141.el6_7.1.x86_64.rpm | 33 kB 00:00 (6/9): perl-Pod-Simple-3.13-141.el6_7.1.x86_64.rpm | 213 kB 00:00 (7/9): perl-YAML-Syck-1.07-4.el6.x86_64.rpm | 75 kB 00:00 (8/9): perl-libs-5.10.1-141.el6_7.1.x86_64.rpm | 579 kB 00:00 (9/9): perl-version-0.77-141.el6_7.1.x86_64.rpm | 52 kB 00:00 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 合計 1.4 MB/s | 13 MB 00:09 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : 1:perl-Pod-Escapes-1.04-141.el6_7.1.x86_64 1/9 インストールしています : 1:perl-Module-Pluggable-3.90-141.el6_7.1.x86_64 2/9 インストールしています : 3:perl-version-0.77-141.el6_7.1.x86_64 3/9 インストールしています : 4:perl-libs-5.10.1-141.el6_7.1.x86_64 4/9 インストールしています : 1:perl-Pod-Simple-3.13-141.el6_7.1.x86_64 5/9 インストールしています : 4:perl-5.10.1-141.el6_7.1.x86_64 6/9 インストールしています : perl-YAML-Syck-1.07-4.el6.x86_64 7/9 インストールしています : perl-Date-Manip-6.24-1.el6.noarch 8/9 インストールしています : logwatch-7.3.6-52.el6.noarch 9/9 Verifying : 1:perl-Pod-Simple-3.13-141.el6_7.1.x86_64 1/9 Verifying : 1:perl-Pod-Escapes-1.04-141.el6_7.1.x86_64 2/9 Verifying : perl-Date-Manip-6.24-1.el6.noarch 3/9 Verifying : logwatch-7.3.6-52.el6.noarch 4/9 Verifying : 1:perl-Module-Pluggable-3.90-141.el6_7.1.x86_64 5/9 Verifying : perl-YAML-Syck-1.07-4.el6.x86_64 6/9 Verifying : 3:perl-version-0.77-141.el6_7.1.x86_64 7/9 Verifying : 4:perl-libs-5.10.1-141.el6_7.1.x86_64 8/9 Verifying : 4:perl-5.10.1-141.el6_7.1.x86_64 9/9 インストール: logwatch.noarch 0:7.3.6-52.el6 依存性関連をインストールしました: perl.x86_64 4:5.10.1-141.el6_7.1 perl-Date-Manip.noarch 0:6.24-1.el6 perl-Module-Pluggable.x86_64 1:3.90-141.el6_7.1 perl-Pod-Escapes.x86_64 1:1.04-141.el6_7.1 perl-Pod-Simple.x86_64 1:3.13-141.el6_7.1 perl-YAML-Syck.x86_64 0:1.07-4.el6 perl-libs.x86_64 4:5.10.1-141.el6_7.1 perl-version.x86_64 3:0.77-141.el6_7.1 完了しました!
設定
デフォルトの設定ファイルは
/usr/share/logwatch/default.conf/logwatch.conf
で、独自に設定を変えたい場合は以下ファイルを変更する。
/etc/logwatch/conf/logwatch.conf
ちなみに、デフォルトから変更したい項目だけ記述しておけば良いです。
自分の場合は以下を変えました。
# デフォルトだとrootだが、gmail宛に飛ばすように変更 MailTo = sample@gmail.com # デフォルトのメールクライアントのsendmailからmailxに変更 mailer = "mailx -t"
基本的な運用はcronでの日次実行(logwatchインストール時に/etc/cron.daily/0logwatchが作成される)になる。
なお、テストなどのために即時実行したい場合はlogwatchコマンドを叩けばよい。
$ logwatch You have old files in your logwatch tmpdir (/var/cache/logwatch): logwatch.dbppTw6E logwatch.sAUaElla The directories listed above were most likely created by a logwatch run that failed to complete successfully. If so, you may delete these directories. Ignoring header field "MIME-Version: 1.0" Ignoring header field "Content-Transfer-Encoding: 7bit" Ignoring header field "Content-Type: text/plain; charset="iso-8859-1""
そして、以下のようなサマリがメールで飛んでくる。
################### Logwatch 7.3.6 (05/19/07) #################### Processing Initiated: Fri Feb 26 03:27:03 2016 Date Range Processed: yesterday ( 2016-Feb-25 ) Period is day. Detail Level of Output: 0 Type of Output: unformatted Logfiles for Host: localhost.localdomain ################################################################## --------------------- clam-update Begin ------------------------ Last ClamAV update process started at Thu Feb 25 03:43:01 2016 Last Status: main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo) Downloading daily-21407.cdiff [100%] Downloading daily-21408.cdiff [100%] Downloading daily-21409.cdiff [100%] Downloading daily-21410.cdiff [100%] daily.cld updated (version: 21410, sigs: 1854558, f-level: 63, builder: neo) bytecode.cvd is up to date (version: 271, sigs: 47, f-level: 63, builder: anvilleg) Database updated (4278830 signatures) from database.clamav.net (IP: 27.96.54.66) ---------------------- clam-update End ------------------------- --------------------- pam_unix Begin ------------------------ sshd: Authentication Failures: unknown (xxxxxxxxxxx.xxx.ftth.sample.com): 1 Time(s) Invalid Users: Unknown Account: 1 Time(s) su-l: Sessions Opened: hoge -> root: 5 Time(s) ---------------------- pam_unix End ------------------------- --------------------- Postfix Begin ------------------------ 5.380M Bytes accepted 5,641,489 8.114K Bytes delivered 8,309 ======== ================================================ 22 Accepted 100.00% -------- ------------------------------------------------ 22 Total 100.00% ======== ================================================ 1 Removed from queue 3 Delivered 21 Deferred 310 Deferrals 1220 Connection failure (outbound) ---------------------- Postfix End ------------------------- --------------------- SSHD Begin ------------------------ Illegal users from: XXX.XXX.XXX.XXX (xxxxxxxxxxx.xxx.ftth.sample.com): 1 time Users logging in through sshd: hoge: XXX.XXX.XXX.XXX (xxxxxxxxxxx.xxx.ftth.sample.com): 4 times XXX.XXX.XXX.XXX (xxxxxxxxxxx.xxx.ftth.sample.com): 1 time Received disconnect: 11: disconnected by user : 5 Time(s) ---------------------- SSHD End ------------------------- --------------------- yum Begin ------------------------ Packages Installed: 1:perl-Pod-Simple-3.13-141.el6_7.1.x86_64 4:perl-libs-5.10.1-141.el6_7.1.x86_64 perl-YAML-Syck-1.07-4.el6.x86_64 1:perl-Module-Pluggable-3.90-141.el6_7.1.x86_64 logwatch-7.3.6-52.el6.noarch 1:perl-Pod-Escapes-1.04-141.el6_7.1.x86_64 4:perl-5.10.1-141.el6_7.1.x86_64 perl-Date-Manip-6.24-1.el6.noarch 3:perl-version-0.77-141.el6_7.1.x86_64 ---------------------- yum End ------------------------- --------------------- Disk Space Begin ------------------------ Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 50G 1.3G 46G 3% / /dev/sda1 477M 57M 395M 13% /boot /dev/mapper/VolGroup-lv_home 240G 60M 228G 1% /home ---------------------- Disk Space End ------------------------- ###################### Logwatch End #########################
特に、Linuxのpam認証に関する「pam_unix」やssh認証に関する「SSHD」セキュリティに関する重要な情報なので、有用ですね。
参考
Logwatchでサーバ監視レポート - エーエイチレフ linuxサーバー技術情報
swatch
任意のログをリアルタイムにチェックしたり、メッセージのパターンを検知してメールを投げたりできるツールです。
インストール
前提として、EPELリポジトリの登録が必要です。
【CentOS6】サードパーティリポジトリの追加 - 忘備録
yum install -y swatch 読み込んだプラグイン:fastestmirror インストール処理の設定をしています Loading mirror speeds from cached hostfile epel/metalink | 5.1 kB 00:00 * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * rpmforge: ftp.kddilabs.jp * updates: ftp.iij.ad.jp base | 3.7 kB 00:00 epel | 4.3 kB 00:00 extras | 3.4 kB 00:00 rpmforge | 1.9 kB 00:00 updates | 3.4 kB 00:00 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package swatch.noarch 0:3.2.3-7.el6 will be インストール --> 依存性の処理をしています: perl(Time::HiRes) のパッケージ: swatch-3.2.3-7.el6.noarch --> 依存性の処理をしています: perl(Date::Parse) のパッケージ: swatch-3.2.3-7.el6.noarch --> 依存性の処理をしています: perl(Date::Format) のパッケージ: swatch-3.2.3-7.el6.noarch --> 依存性の処理をしています: perl(Date::Calc) のパッケージ: swatch-3.2.3-7.el6.noarch --> トランザクションの確認を実行しています。 ---> Package perl-Date-Calc.noarch 0:6.3-2.el6 will be インストール --> 依存性の処理をしています: perl(Bit::Vector) >= 7.1 のパッケージ: perl-Date-Calc-6.3-2.el6.noarch --> 依存性の処理をしています: perl(Carp::Clan) のパッケージ: perl-Date-Calc-6.3-2.el6.noarch --> 依存性の処理をしています: perl(Bit::Vector) のパッケージ: perl-Date-Calc-6.3-2.el6.noarch ---> Package perl-Time-HiRes.x86_64 4:1.9721-141.el6_7.1 will be インストール ---> Package perl-TimeDate.noarch 1:1.16-13.el6 will be インストール --> トランザクションの確認を実行しています。 ---> Package perl-Bit-Vector.x86_64 0:7.1-2.el6 will be インストール ---> Package perl-Carp-Clan.noarch 0:6.03-2.el6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ============================================================================================================== インストールしています: swatch noarch 3.2.3-7.el6 epel 49 k 依存性関連でのインストールをします。: perl-Bit-Vector x86_64 7.1-2.el6 base 169 k perl-Carp-Clan noarch 6.03-2.el6 base 25 k perl-Date-Calc noarch 6.3-2.el6 base 210 k perl-Time-HiRes x86_64 4:1.9721-141.el6_7.1 updates 49 k perl-TimeDate noarch 1:1.16-13.el6 base 37 k トランザクションの要約 ============================================================================================================== インストール 6 パッケージ 総ダウンロード容量: 539 k インストール済み容量: 1.4 M パッケージをダウンロードしています: (1/6): perl-Bit-Vector-7.1-2.el6.x86_64.rpm | 169 kB 00:00 (2/6): perl-Carp-Clan-6.03-2.el6.noarch.rpm | 25 kB 00:00 (3/6): perl-Date-Calc-6.3-2.el6.noarch.rpm | 210 kB 00:00 (4/6): perl-Time-HiRes-1.9721-141.el6_7.1.x86_64.rpm | 49 kB 00:00 (5/6): perl-TimeDate-1.16-13.el6.noarch.rpm | 37 kB 00:01 (6/6): swatch-3.2.3-7.el6.noarch.rpm | 49 kB 00:00 -------------------------------------------------------------------------------------------------------------- 合計 144 kB/s | 539 kB 00:03 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : perl-Carp-Clan-6.03-2.el6.noarch 1/6 インストールしています : perl-Bit-Vector-7.1-2.el6.x86_64 2/6 インストールしています : perl-Date-Calc-6.3-2.el6.noarch 3/6 インストールしています : 4:perl-Time-HiRes-1.9721-141.el6_7.1.x86_64 4/6 インストールしています : 1:perl-TimeDate-1.16-13.el6.noarch 5/6 インストールしています : swatch-3.2.3-7.el6.noarch 6/6 Verifying : perl-Carp-Clan-6.03-2.el6.noarch 1/6 Verifying : perl-Bit-Vector-7.1-2.el6.x86_64 2/6 Verifying : perl-Date-Calc-6.3-2.el6.noarch 3/6 Verifying : swatch-3.2.3-7.el6.noarch 4/6 Verifying : 1:perl-TimeDate-1.16-13.el6.noarch 5/6 Verifying : 4:perl-Time-HiRes-1.9721-141.el6_7.1.x86_64 6/6 インストール: swatch.noarch 0:3.2.3-7.el6 依存性関連をインストールしました: perl-Bit-Vector.x86_64 0:7.1-2.el6 perl-Carp-Clan.noarch 0:6.03-2.el6 perl-Date-Calc.noarch 0:6.3-2.el6 perl-Time-HiRes.x86_64 4:1.9721-141.el6_7.1 perl-TimeDate.noarch 1:1.16-13.el6 完了しました!
デーモン起動スクリプト
毎回手動でswatchを起動するのは手間なので、起動スクリプトを作成します。
[2016.02.29] スクリプトに不具合があったので修正しました。詳しくはソースのコメントを参照
/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 pno=0 RET=0 conflist=`ls /etc/swatch/conf/*.conf` if [ $? -ne 0 ]; then exit 1 fi for conf in $conflist do log=`basename $conf | cut -d\. -f1` logPath=`find /var/log/ -type f -regex ".*/$log"` [ ! -n "$logPath" ] && logPath=`find /var/log/ -type f -regex ".*/$log.log"` if [ -n "$logPath" ]; then pno=`expr $pno + 1` # [2016.02.29] --script-dirオプションを追加しました。 # この指定がないとスクリプト停止時に.swatch_script.*ファイルが削除されず、ホームディレクトリに溜まっていってしまいます。 swatch -c $conf -t "$logPath" --daemon \ --script-dir=/tmp/ \ --pid-file /var/run/swatch_$pno.pid 1>> /var/log/swatch.log 2>& 1 RET=$? [ $RET != 0 ] && return $RET else echo -n "error: not found log file" exit 1 fi done if [ $pno -gt 0 ]; then echo [ $RET = 0 ] && touch /var/lock/subsys/swatch fi echo -n "Starting swatch" return $RET else echo -n "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 -n "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 -n "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
スクリプトの概要は以下です。
- /etc/swatch/conf/ 配下にある「*.conf」ファイルをswatchの-cオプションの引数にする
- /var/log/{上記の設定ファイルの拡張子(.conf)を抜いたもの} をswatchの-tオプションの引数にする
- /var/log/{上記の設定ファイルの拡張子(.conf)を抜いたもの}がない場合、{左記に.logを加えたもの} をswatchの-tオプションの引数にする
- 「echo」アクションの出力先を /var/log/swatch.log にする
文だとイマイチ分からないので例を挙げると
/etc/swatch/conf/secure.conf と /etc/swatch/conf/yum.conf という設定ファイルがあった場合、
swatch -c secure.conf -t secure
と
swatch -c yum.conf -t yum.log
が実行されます。
実行と自動起動設定
とりあえず実行
$ service swatch start
起動スクリプトとして登録して。。。
$ chkconfig --add swatch
OS起動時にスクリプトが起動するように設定しておきます。
$ chkconfig swatch on
確認
$ chkconfig | grep swatch swatch 0:off 1:off 2:on 3:on 4:on 5:on 6:off
設定
swatchの設定ファイルは監視するログファイルごとに、以下ディレクトリに作る
/etc/swatch/conf/
/etc/swatch/conf/secure.conf
##login watchfor /su(pam_unix)|session opened for user root/i echo pipe "mail -s 'TELNET_Session_Opend_Log (root)' sample@gmail.com" ##ftp watchfor /ftp.*session opened/i echo pipe "mail -s 'FTP_Session_Opend_Log' sample@gmail.com" ##ssh watchfor /sshd.*session opened/i echo pipe "mail -s SSH_Session_Opend_Log sample@gmail.com"
swatchの設定ファイルの書式は以下です。
watchfor /パターン/ アクション
設定されたパターンが監視対象のログファイルに出力されると、アクションが実行されます。
ちなみにパターンはPerlの正規表現で「/パターン/i」と i をつけることで大文字・小文字を無視することができます。
アクションには以下のように、いくらか種類があります。
アクション | 概要 |
---|---|
echo | 検索パターンにマッチした行を標準出力に渡す。 |
検索パターンにマッチした行をメール通知する。 | |
pipe | 検索パターンにマッチした行をパイプを通して外部コマンドに渡す。 |
threshold | 連続してマッチした行の表示を指定回数になるまで表示しないようにする。 |
throttle | 連続してマッチした行の検出を一定時間抑止する。 |
mailというメールで通知するためのアクションが用意されているのですが、例で挙げているsecure.confのアクションはpipeを使っており、ログ出力をmailコマンドに渡しています。
なぜこんな面倒をしているかというと、mailアクションでは内部的にsendmailが利用されていて、sendmailだと都合が悪いため(理由は割愛)mailコマンドを利用するようにしています。
参考
サーバのログを監視するSwatchの導入方法と使い方を解説 | OXY NOTES
Swatchによるリアルタイムログ監視システムを構築する【前編】 | 情シスハック
Linuxexpert - Swatchパターン&ルール記述例-Tips/Swatchパターン&ルール記述例-PukiWiki
ドットコマンドと直接スクリプトを実行した時の違い - Webエンジニアの技術メモ 〜PHP、SQL、Linuxなど〜
/var/lock/subsys/について - さよならインターネット
[swatch: ログ監視] Debian Linux Server
。。。今回初めて起動スクリプトを独自に書いたんで、とても勉強になりました。
半分コピペですが