2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

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 Yesmktempコマンドを利用して、一時ファイルを作成
UseMkTemp No「-d」オプションに対応していないmktempコマンドの場合に指定
Save ファイルレポートの保存先を指定
Archives Yesアーカイブされたログをチェックする
Archives Noアーカイブされたログをチェックしない
Range All指定したログディレクトリのすべてのファイルを対象
Today当日のログのみを対象
Yesterday昨日のログのみを対象
Detail Highレポートの詳細度を指定。Highは10
Detail MedMedは5
Detail LowLowは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 = Yesmktempを使用して一時ファイルを作成
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 #########################

以上

コメント