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 #########################
以上
コメント