TomcatはJavaアプリケーションサーバーとして広く利用されていますが、そのログファイルが肥大化しやすいのも事実です。この問題を解決するために、Linuxシステムではlogrotate
ツールを使ってログファイルのローテーション(古いログの削除やアーカイブ)を自動化することができます。ここでは、Tomcat 10のログをlogrotate
を使用して効果的に管理する方法をご紹介します。
Logrotateの基本
logrotate
は、ログファイルを定期的にローテートし、必要に応じて圧縮、削除、メール送信することができるツールです。これにより、ディスクスペースを有効に管理し、ログファイルがシステムを圧迫するのを防ぎます。
Tomcatログのローテーション設定
Step 1: Logrotate設定ファイルの作成
まず、/etc/logrotate.d/
ディレクトリにtomcat10
という名前の新しい設定ファイルを作成します。これが、Tomcatのログを管理するための設定ファイルになります。
以下の内容をファイルに追加します(パスやユーザー名は環境に合わせて適宜変更してください)。
/opt/apache-tomcat-10.1.19/logs/catalina.out {
copytruncate
daily
rotate 7
compress
missingok
create 0644 tomcat tomcat
su tomcat tomcat
}
この設定では、catalina.out
ログファイルが毎日ローテートされ、7日間保持された後に圧縮されることを意味します。また、su
ディレクティブを使用して、ログのローテーションに使用するユーザーとグループを指定します。
Step 2: ファイルとディレクトリの権限の設定
セキュリティを確保するため、Tomcatのログディレクトリの権限を適切に設定します。
chmod 770 /opt/apache-tomcat-10.1.19/logs/
同様に、作成したlogrotateの設定ファイルの権限も適切に設定します。
chmod 644 /etc/logrotate.d/tomcat10
Step 3: Logrotateの実行とテスト
設定が完了したら、logrotate
コマンドを使用して、設定が期待通りに機能するかをテストします。
logrotate -d /etc/logrotate.d/tomcat10
-
d
オプションを使用すると、実際には何も実行されず、どのような操作が行われるかが表示されます。問題がなければ、デバッグモードを外して実行します。
logrotate /etc/logrotate.d/tomcat10
詳細な実行結果を見たい場合は、-v
オプションを使用します。
logrotate -v /etc/logrotate.d/tomcat10
まとめ
logrotate
を使用することで、Tomcatのログファイル管理を自動化し、システムの健全性を保ちながらディスクスペースを効率的に利用することができます。上記のステップに従って、ログのローテーションを設定する