Kozupon.com    
 
 Logwatchによるログチェック!


logの監視ツールは不正侵入等、危険な行為があった場合その旨のlogをそのままメールにて送信するツールは多い。 しかし、Logwatchは九龍で毎日夜間に実行され、ログから特定のパターンを含む行を比較的見やすい状態に加工してメール送信させることが可能である。だから、日頃logの見方に苦労されてる方はとても便利なツールだと思う。


1.Logwatchのインストール

とりあえず、2004年9月現在最新だったlogwatch-5.2.2.tar.gz
ダウンロードする(常に新しいバージョンをダウンロードすること)。

ftp://ftp.kaybee.org/pub/linux/

ダウンロードしたファイルを適当なフォルダで展開してコピー作業を行う。
$ tar zxvf logwatch-5.2.2.tar.gz
$ su -
# mkdir /etc/log.d
# cd logwatch-5.2.2
# cp -r scripts /etc/log.d
# cp -r conf /etc/log.d
# ln -s /etc/log.d/scripts/logwatch.pl /etc/cron.daily/

以上で、Logwatchのデフォルト設定は完了。


2.九龍でスケジューリング

九龍により毎日実行される。
実行される時間は、/etc/crontabで確認できる。

# vi /etc/crontab

省略

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

省略

余談だが、上記より「/etc/cron.daily」ディレクトリにあるスクリプトは毎日4時2分に実行される。


3.Logwatchの設定

Logwatchの設定ファイルは、「/etc/log.d/conf/logwatch.conf」。このファイルの書式は以下の通り。

Name=Value

NameおよびValueに指定する設定は、以下の通りである。

◆ Name Value 内容

LogDir パス
チェックするログのあるディレクトリのパスを指定
MailTo アドレス
メールの送信先を指定
Print Yes
メール送信の代わりにコンソールに表示
Print No
メールを送信
UseMkTemp Yes
mktempコマンドを利用して、一時ファイルを作成
UseMkTemp No
「-d」オプションに対応していないmktempコマンドの場合に指定
Save ファイル
レポートの保存先を指定
Archives Yes
アーカイブされたログをチェックする
Archives No
アーカイブされたログをチェックしない
Range All
指定したログディレクトリのすべてのファイルを対象
Today
当日のログのみを対象
Yesterday
昨日のログのみを対象
Detail High

レポートの詳細度を指定。Highは10

Detail Med
Medは5
Detail Low
Lowは0
Service ファイル
特定のサービスのみチェックする。/etc/log.d/scripts/services/のファイル名で指定
LogFile ファイル
特定のログファイルのみチェックする
Mailer ファイル
メールを送信する際のコマンド指定
HostLimit Yes
ローカルサーバのログのみを対象
HostLimit No
転送されたログを含むすべてのログを対象

/etc/log.d/conf/logwatch.confのデフォルト設定は、以下のようになっている。

LogDir パスLogDir = /var/log
ログが保存されるディレクトリを「/var/log」に指定
MailtTo = root
メールの送信先をローカルのrootユーザーに指定
Print = No
コンソールに表示しない
Range = yesterday
昨日のログファイルをチェックする
UseMkTemp = Yes
mktempを使用して一時ファイルを作成
Detail = Low
レポートの詳細度をLowに指定
Service = All
「/etc/log.d/scripts/services/」ディレクトリにあるすべてのファイルの内容でフィルタをかけて情報を取得
Mailer = /bin/mail
メールコマンドを「/bin/mail」に指定

メール送信先のみの変更で問題なく使用可能です。デフォルトでコメントアウトされてい
る設定はチェックする項目に制限をかけるためのものなので、特に使用する必要はない。

具体的にどのような内容のログをチェックできるのかは、「/etc/log.d/scripts/services/」
ディレクトリのファイルで確認できます。例えば、「init」ファイルには次のような行がある。

省略
elsif ( $ThisLine =~ s/^Entering runlevel: (.)\s*$/$1/ ) {
省略

これは、もしログに「Entering runlevel」の記述があればそれをチェックするという意味。

以下は、ランレベル3で起動した場合に出力されるログの一部である。
Nov 3 22:26:13 hoge init: Entering runlevel: 3

例えば、initに関係するログが上記1行のみの場合は、

--------------------- Init Begin ------------------------

Entered or switched to runlevel 3: 1 Time(s)

---------------------- Init End -------------------------

のように出力してくれます。また、デフォルトでディスクの空き容量なども出力するので、
容量不足のチェックにも利用できる。

以下出力サンプル。


################### LogWatch 5.2.2 (06/23/04) ####################
Processing Initiated: Sat Nov 27 04:02:06 2004
Date Range Processed: yesterday
Detail Level of Output: 5
Logfiles for Host: note2.kozupon.com
################################################################

--------------------- Cron Begin ------------------------

Commands Run:
User root:
/etc/awstats.cron > /dev/null 2>&1: 24 Time(s)
apt-get update;apt-get -f -y dist-upgrade > /dev/null 2>&1: 1 Time(s)
run-parts /etc/cron.daily: 1 Time(s)
run-parts /etc/cron.hourly: 24 Time(s)

---------------------- Cron End -------------------------


--------------------- postfix Begin ------------------------

 

10732 bytes transferred
4 messages sent

Top ten senders:
2 messages sent by:
root (uid=0):

---------------------- postfix End -------------------------


--------------------- SSHD Begin ------------------------


Users logging in through sshd:
mity:
210.196.76.146: 9 times
michi.kozupon.com (192.168.255.6): 1 time

Refused incoming connections:
210.116.104.91 (210.116.104.91): 1 Time(s)

---------------------- SSHD End -------------------------

 

------------------ Disk Space --------------------

/dev/hda3 3.7G 1.5G 2.0G 42% /
/dev/hda1 36M 19M 15M 56% /boot


###################### LogWatch End #########################

以上


 
 
 



Copyright 2009 Kozupon.com.