連載
» 2002年11月12日 00時00分 UPDATE

Linux管理者への道(4):サーバのログ監視ツールを使いこなそう (3/3)

[浅野史彦, 小川典嗣,アイティーブースト]
前のページへ 1|2|3       

Logwatchによるログの定期チェック

 swatchは出力されるログを監視して、指定したパターンが現れたときにアクションを起こすツールでした。しかし、パターンの含まれる行がそのまま表示されるため、ログを見慣れていないと少し戸惑うかもしれません。これに対して、「Logwatch」は(デフォルトでは)毎日夜間に実行され、ログから特定のパターンを含む行を比較的見やすい状態に加工して表示させることが可能です。

Logwatchのインストール

 最近のRed Hat LinuxはLogwatchがデフォルトでインストールされていますが、多くの場合バージョンが古いので、一度アンインストールします。

# rpm -qa | grep logwatch
# rpm -e logwatch

 2002年11月2日現在のLogwatchの最新バージョンは4.2.1です。http://www.logwatch.org/からlogwatch-4.2.1.tar.gzファイルをダウンロードします。

 ダウンロードしたファイルを展開して設定を行います。

$ tar zxvf $SOURCE/logwatch-4.2.1.tar.gz
$ su -
# mkdir /etc/log.d
# cp -r $SOURCE/logwatch-4.2.1/scripts /etc/log.d
# cp -r $SOURCE/logwatch-4.2.1/conf /etc/log.d
# ln -s /etc/log.d/scripts/logwatch.pl /etc/cron.daily/

 以上で、Logwatchのデフォルト設定は完了です。cronにより、毎日実行されます。実行される時間は、/etc/crontabで確認できます。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分に実行されることが確認できます。

Logwatchの設定

 Logwatchの設定ファイルは、「/etc/log.d/conf/logwatch.conf」です。このファイルの書式は以下のようになります。

Name=Value

 NameおよびValueに指定する設定は、表4のとおりです。

Name Value 内容
LogDir パス チェックするログのあるディレクトリのパスを指定
MailTo アドレス メールの送信先を指定
Print Yes メール送信の代わりにコンソールに表示
No メールを送信
UseMkTemp Yes mktempコマンドを利用して、一時ファイルを作成
No 「-d」オプションに対応していないmktempコマンドの場合に指定
Save ファイル レポートの保存先を指定
Archives Yes アーカイブされたログをチェックする
No アーカイブされたログをチェックしない
Range All 指定したログディレクトリのすべてのファイルを対象
Today 当日のログのみを対象
Yesterday 昨日のログのみを対象
Detail High レポートの詳細度を指定。0?10の数字で指定することも可能。0=Low、5=Med、10=Highに対応
Med
Low
Service ファイル 特定のサービスのみチェックする。/etc/log.d/scripts/services/のファイル名で指定
LogFile ファイル 特定のログファイルのみチェックする
Mailer ファイル メールを送信する際のコマンド指定
HostLimit Yes ローカルサーバのログのみを対象
No 転送されたログを含むすべてのログを対象
表4 NameとValue

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

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」に指定
注:コメント行は省略していますが、logwatch.confは設定マニュアルも兼ねているので一度は目を通しましょう。

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

 具体的にどのような内容のログをチェックできるのかは、「/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 -------------------------

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

サーバの用途に合ったツール選択を

 今回はログ関連ツールとして、リアルタイムに重要なログをそのまま確認できるswatchと、1日に1度ログをチェックして見やすく出力するLogwatchを紹介しました。サーバの使用目的に応じて、どちらかあるいは両方のツールを使用するとよいでしょう。このほかにもログに関するツールはいろいろありますが、一長一短を見極めて適切に使用しましょう。


前のページへ 1|2|3       

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。