アクセラと+αな生活
アクセラとα350と共に過ごす気まぐれ日記です。
Firefox ブラウザ無料ダウンロード
2017年05月
≪04月  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31    06月≫
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
何か問題が発生した場合の調査でログは重要です。
ログ自体は重要でも、何ヶ月も前のログであれば、不要になり、逆にディスクリソースを消費するゴミになります。

ですので、ログは一定の保存期間を設定し、保存期間を過ぎたものは削除、ローテーションを行い管理します。

ということで、ローテーションの設定を行ってみます。



Linux には標準でログをローテーションする機能が備わっており、自動でローテーションを行ってくれます。

このローテーションを行う設定ファイルが「/etc/logrotate.conf」になります。


また、「Samba」や「vsftp」など、サーバーアプリケーションのログローテーション設定は「/etc/logrotate.d」にアプリケーション単位で保存されています。

ですので、「/etc/logrotate.conf」、「/etc/logrotate.d」配下の設定ファイルを編集することで、ローテーションの設定を行うことができます。

では、Ubuntu 9.04での「/etc/logrotate.conf」を見てみましょう。
(いろいろいじっているので、一部デフォルトと違う内容があるかもしれません、ご了承下さい)


「/etc/logrotate.conf」
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}


/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}


「include /etc/logrotate.d」で「Samba」などのアプリケーション単位でのローテーション設定ファイルを読み込んでますね。

設定の記述方法は「ログのファイル名」を記述し、そのローテーション設定内容を「{}」内で記述します。

○ローテートスケジュール
例えば、「/var/log/test.log」のローテートスケジュールを日ごとにするのであれば、

/var/log/test.log
{
daily
}

と記述します。
週ごとであれば「weekly」、月ごとであれば、「monthly」となります。

○ローテート前の最大サイズ
バイト単位で指定でき、このサイズを超えた場合はスケジュール外でもローテートを行います。

10バイトと指定する場合は

/var/log/test.log
{
size 10
}

と指定します。

○保存世代数
ローテートしたログファイルの保存世代数は「rotate」で指定します。
例えば、週ごとで世代数を4とすれば、4週間分が保存され、下記のように指定します。


/var/log/test.log
{
weekly
rotate 4
}


○古いログの圧縮
ローテート後のファイルを圧縮する場合は「compress」を指定します。
また、圧縮を次のサイクルまで遅らす場合は「delaycompress」を指定します。


/var/log/test.log
{
compress
delaycompress
}


○ローテート後のログの場所
ローテートしたログの保存先を変更する場合、「olddir」を指定します。

「/tmp/」に保存する場合は

/var/log/test.log
{
olddir /tmp/
}

と指定します。

○ローテート前、後のコマンド実行
ローテートを行う前に何かコマンドを実行する場合、そのコマンドを「prerotate」、「endscript」の間に記述します。
ローテートを行う後に何かコマンドを実行する場合、そのコマンドを「postrotate」、「endscript」の間に記述します。

例えば、ローテート前に「precommand.sh」、ローテート後に「postcommand.sh」を実行する場合

/var/log/test.log
{
prerotate
precommand.sh
endscript

postrotate
postcommand.sh
endscript
}

と指定します。





他にもいろいろ指定できます。
詳しくは「man logrotate」で確認できます。


まあ、設定ファイルを直接編集するのは怖いですし、「webmin」を使って設定する方が簡単ですね。


コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by .
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。