Linuxでは、各種ログファイルが大量に生成されます。
それら生成される大量のログファイルをそのまま放置しておけば、解析が非常に困難になってきます。
そこで、定期的にファイルを切り分けて、圧縮して保存しておく仕組み が、logrotate です。
主設定ファイルが格納されている場所
/etc/logrotate.conf
設定ファイルの内容
設定ファイルの内容をそのまま抜き出しました。
※赤文字が規定値から変更した部分
# see "man logrotate" for details
# rotate log files weekly ローテートを実行するタイミング
weekly
# keep 4 weeks worth of backlogs ローテートしたファイルを保存する個数(156週=3年間)
rotate 156
# create new (empty) log files after rotating old ones ローテートした後にファイルを作成するかどうか
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed ローテートしたファイルを圧縮するかどうか
compress
# RPM packages drop log rotation information into this directory 外部設定ファイルを読み込む設定とその場所の指定
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 36
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 36
}
# system-specific logs may be also be configured here.
各種アプリケーションごとに格納されているディレクトリ
/etc/logrottate.d/
syslogの設定ファイルの内容
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
Apacheの設定ファイルの内容
/var/log/httpd/access_log
/var/log/httpd/error_log
/var/log/httpd/ssl_access_log
/var/log/httpd/ssl_error_log
{
missingok
notifempty
sharedscripts
create 644 root root
postrotate
killall -HUP /usr/local/apache2/bin/httpd 2>/dev/null || :
endscript
}
上記設定例からわかるように、複数のファイルを指定する場合、{}の外側にファイル名を指定するようにします。
各種設定内容に関する説明の一覧