肥大化するログを分割

03/06/17

Vineの「/ver/log」以下にあるログファイルを見るとある一定の時期が来ると、ログファイルが新たに作成され、それまでのログファイルがファイル名に「.1」と付け加えられて「.5」まで同じようなファイルが作成されていると思います。これは、「logrotate」と呼ばれるログを自動的に回すツールが「corn」である一定ごとに実行されているためです。試しに、Webminの「システム」>「予約済みCorn作業」を開くと、「コマンド」のところに「/etc/cron.daily/logrotate」というコマンドがあると思います。クリックして開いてみると一週間ごとに実行されていると思います。

さて、分割されていないログや新しく作成したログも同じように分割させてみましょう。

ここでは、「/var/log/httpd」以下にある「worm_log」を分割させることとします。

まず、「/etc/logrotate.d」以下にある「apache」というファイルを開きます。開いたら一番下に、

/var/log/httpd/worm_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}

を付け加えます。これは、ローテーション後、ログファイルにログを吐き出していたプロセスがログファイルを見失ってしまうため、「httpd」にHUPシグナルを送り、再起動させるという作業を行うための設定です。
基本的に他のログでもログへのパスを変えるだけで同じように付け加えることで増やしていくことが出来ます。

次に、「/var/lib」以下にある「logrotate.status」を開きます。これは各ログが前回いつローテーションされたかを記録するためのファイルで、ここに

"/var/log/httpd/worm_log" 2003-6-15

の様に他のhttpdのログの日付を参考に付け加えます。

ところで、この「worm_log」はどのくらいの間隔でいくつまでファイルを作るのでしょうか?

/etc」以下の「logrotate.conf」を開いてみましょう。

1: weekly ←一週間ごとに(デフォルト)
2: rotate 4 ←4つまでファイルを作る(デフォルト)
3: errors root ←エラーがあったら「root」宛てにメールを送る
4: create ←ローテーション後すぐに同名のログファイルを作成する
5: include /etc/logrotate.d ←ここで指定したディレクトリ以下が
               設定ファイルが格納されている

6:↓ここから設定の一例
7: /var/log/wtmp { ←ログファイルへのパス
8: monthly ←一ヶ月ごと(デフォルトを上書きします)
9: create 0664 root utmp ←ファイルのグループと所有者と
             パーミッション

10: rotate 1 ←ファイルを 1 つだけ保存(デフォルトを上書きします)
11: }

一応このファイルに「/var/log/wtmp」というログに関する設定が記述されているようですね。

実際にこの「logrotate」を実行させるのは、「corn」で、「logrotate」が実行されると前回の各ログのローテーションした日付と、設定を照らし合わせて指定された期間が過ぎていたらそのログをローテーションします。

Webminの「システム」>「予定済み Cron 作業」を開き、「コマンド」の欄にある「/etc/cron.daily/logrotate」をクリックします。

そうすると、「logrotate」が毎日指定された時間で実行されていることがわかると思います。

デーモンが停止したらメールを送る

03/06/17

サーバデーモンが何らかの理由で停止したらメールを送るようにさせました。

Webminの「その他」>「システムおよびサーバのステータス」を開くと、どのデーモンを監視しているか、また、最後に監視したときの状態は何だったかが表示されます。
どういうワケか「BIND DNS Server」はステータスが「ダウン」になってます・・・。

基本的にはデフォルトで基本的なデーモンが登録済みになっていると思います。ない場合は、プルダウンメニューで監視させたいデーモンを選んで登録しておきましょう。

次に、右下の「スケジュールされたモニタ」をクリックし、

スケジュールされた検査を有効にしますか?」>「はい」

各サービスごとに 1 通の E メールを送信しますか?」>「はい」

検査の単位」>デフォルトでは5分

警告 E メールを送信」>「サービスがダウンした場合 」

E メール ステータス レポート先」>送信先のメールアドレス

次の E メール アドレスから:E メールのアドレス」>「デフォルト」

Send mail via」>「Local sendmail executable」
※もしくは、「SMTP server」の方にチェックを入れ、その隣の欄に、加入しているプロバイダーの、「SMTP」サーバのアドレス・ドメインを入れてもいい。
この場合、自鯖の「SMTP」サーバが停止した場合でも、メールを送信することができる。

Page status report to number」>「全員拒否」

で、保存をクリック。

こうすると、監視したデーモンが停止すると「送信先のメールアドレス」にその候を知らせるメールが届きます。

 

<Pre Next>

■目次

■最近観た映画2


■最近観た映画3

 


■ここがサブタイトル