トップページ活動報告運用規則活動履歴参加者名簿勉強会


logrotate によるログファイル管理


 ログファイルは時間とともにサイズが大きくなっていきますので,適当な頻度でローテーションさせる必要があります.

 そのために,logrotate というツールが vine linux にあらかじめ用意されていますので,これを使うことにします.



1.logrotate の設定( logrotate.conf )


 logrotate の設定は logrotate.conf ファイル( /etc/ の中にあります)に指定します.ただし個々のログファイルに対する設定は /etc/logrotate.d/ の中に適当なファイルを作って,その中に記述します( logrotate.conf に記述しても構いませんが,ここでは iplogrotate というファイルを /etc/logrotate.d/ の中につくることにします.)

 ローテーションは,ファイルサイズがある大きさを越えたら行うというように指定するか,daily, weekly, monthly という具合に,一定期間ごとに行うように指定することができます.

 ここでは iplog で使用するログファイル,iplog( /var/log/ の中にあります)を1週間ごとに iplog.1 に,iplog.1 を iplog.2 に・・・というように”順送り”に変更し,iplog.12 までつくるように設定してみます.

 

2.実際の設定


 以下はデフォルトの logrotate.conf の設定です.括弧内には簡単な説明をつけておきました.

# see "man logrotate" for details
# rotate log files weekly
weekly (←1週間ごとにローテーションする)

# keep 4 weeks worth of backlogs
rotate 4 (←ローテーションさせるログファイルを最大4個まで作成する)

# send errors to root
errors root (←エラーが発生した場合 root にメールで知らせる)

# create new (empty) log files after rotating old ones
create (←ローテーション後,新しい空のログファイルを生成する)

# uncomment this if you want your log files compressed
#compress (←古いログファイルを圧縮する:ただし # でコメントアウトしているので,未設定)

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d (← /etc/logrotate.d/ の中に,個別のログファイルに対するローテーション設定を指定することを指示しています)

(以下は /var/log/ の中にある wtmp ファイルに対する設定)

# no packages own lastlog or wtmp -- we'll rotate them here
/var/log/wtmp {
monthly (← wtmp ファイルに対しては logrotate の設定 weekly を無視して,monthly でローテーションさせる)
create 0664 root utmp (←ローテーション後すぐ作成されるファイルのパーミッションを 0644 、所有者を root ,グループを utmp とする)
rotate 1 (← wtmp ファイルに対しては,ローテーションで作るファイルを1つにする)
} 

# system-specific logs may be configured here



3.iplog のローテーション設定


 logrotate.conf の #compress 行の # を削除し,ログファイルの古いものを圧縮するようにしておきましょう.

 それから rotate 4 は rotate 12 に変更してください.

 次に,/etc/logrotate.d の中に iplogrotate という名前のファイル(名前は何でもいいのですが,Posty ではとりあえずこの名前で統一しませんか?)をつくります.

そうしたらそのファイルをエディタで開いて,中に以下のように記述します.

/var/log/iplog {
missingok
create 0600 root root
weekly
rotate 12
postrotate
/etc/rc.d/init.d/iplog restart
endscript
}

 postrotate と書かれた行の次にあるスクリプトで,ローテーションを行った後 iplog を再起動させています.iplog ツールが,新しく生成された iplog ファイル(ややこしいですが,ログフィルの方です)をちゃんと認識できるようにするためです.



4.ログを見るとき


 ターミナルから sudo -s でルート権限を持った後,

less /var/log/iplog

と打ち込んで読んでください(エディタで開かないように! 誤ってログファイルを書き換えてしまったりするかもしれませんよ



2002/09/29 更新
担当 川上源太郎


トップページ活動報告運用規則活動履歴参加者名簿勉強会