logrotateコマンドを使用する方法
Amazon Linux、CentOS では、yum でインストール出来る。
Redhat系だったら導入は簡単ということ。他のディストリビューションは手元に無いので確認していない。
以下に設定ファイルを作成する。
/etc/logrotate.d
ファイルの名前で、logrorateを使っているアプリケーションがわかる。
ここでは、「/etc/logrotate.d/tomcat」とする。root で作業。
# vi /etc/logrotate.d/tomcat
# logrotate file for Tomcat
/opt/tomcat/logs/catalina.out {
missingok
copytruncate
daily
dateext
rotate 60
}
オプションの整理
- missingok:ログファイルが無くてもエラーを出さない
- copytruncate:
- daily:日でローテート
- dateext:ファイル名末尾に日付をつける
- rotate:残す世代数
- compress:最新世代以外は圧縮
- size:最大サイズを指定。最大になるとローテート
/etcc/cron.daily 配下のファイル logrotate がある。つまり、logrotateはcronによって毎日走る。
実行スクリプトがどこにあるかというと、logrotate.d にすべてのスクリプトが含まれる。
include /etc/logrotate.d
logrotateの強制実行
# logrotate -f /etc/logrotate.d/tomcat
cron.dailyの強制実行
# anacon -f
上記で、少なくとも logrotate と cron による実行確認可能。
サーバに設定して、動作確認すればOK。
accesslogの設定
catalina.outだけでなく、accessログも logrotate でローテートする場合は、tomcatが自動でローテートしないように以下の設定を行う。
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="access_log." suffix=".txt" ←★ファイル名は access_log.txt に固定される
rotatable="false" ←★ 自動ローテートをOFF
pattern='%h %l %u %t "%r" %s %b %D "%{Referer}i" "%{User-Agent}i"' />
その後、tomcatのローテート設定にファイルを追加する。
# logrotate file for Tomcat
/opt/tomcat/logs/catalina.out
/opt/tomcat/logs/access_log.txt
{
missingok
copytruncate
daily
dateext
rotate 60
}
0 件のコメント:
コメントを投稿