logrotate設定を作成
設定例を作るだけでなく、権限、圧縮、ローテーション方式、後処理の注意点と確認コマンドまで表示します。
ログ肥大化、保持不足、create権限の誤り、copytruncateやpostrotateによる運用事故を事前に確認します。
絶対パスで指定します。ワイルドカードも使用できます。
ログ量に合わせて選びます。大量ログならdailyが一般的です。
古いログを何世代保持するか指定します。0は保持しません。
指定すると、この簡易ジェネレーターではdaily・weeklyなどの周期条件の代わりにsizeを使用します。周期とサイズを組み合わせたい場合はminsizeまたはmaxsizeを検討し、レビューで確認してください。
一般的な初期候補 ログが一時的に存在しないことを許容する運用ではmissingokが候補です。ログ欠落自体を異常として検知したい運用では選ばないでください。
一般的な初期候補 空ログをローテーションする必要がない運用ではnotifemptyが一般的です。空ファイルも周期的に切り替える要件ではifemptyを検討します。
一般的な初期候補 保存容量を抑えたい場合はcompressが候補です。アプリや後続処理がローテート済みログを直接参照する場合は互換性を確認してください。
「次回まで遅らせる」を選ぶと、設定にdelaycompressを追加します。最新のローテート済みログだけは圧縮せず、次回に圧縮します。
条件付き推奨 アプリが直前のログを開いたままにする場合に向いています。すぐ圧縮して問題ないサービスでは必須ではありません。
「圧縮しない」を選択しているため、この項目は設定へ出力されません。
「新しいログを作成」は設定名createです。元ログをリネームし、新しい空ファイルを作ります。
一般的な初期候補 サービスがreloadや専用シグナルでログを再オープンできる場合はcreate方式が候補です。サービス側の再オープン手順を必ず確認してください。
「元ログをコピー後に空にする」は設定名copytruncateです。再オープンに対応していないサービス向けですが、コピー中の書き込みが欠落する可能性があります。
ローテーション方式で「新しいログを作成」を選んだ場合だけ使用します。属性は任意です。例:0640 または 0640 appuser appgroup。省略した属性は元ログの値を引き継ぎます。2項目だけ指定する場合はowner・groupとして解釈されます。
一般的な初期候補 0640は一例です。適切なモードはログを読む主体、サービスユーザー、グループ運用、監視・収集エージェントの要件に合わせて決めてください。
現在は「元ログをコピー後に空にする」を選択しているため、この項目は設定へ出力されません。
postrotateは、ローテーション後に実行する後処理です。主にサービスへ「新しいログへ切り替えてください」と通知するために使います。
必要な場合だけ設定 「新しいログを作成」を選び、サービス側にログ再オープンの通知が必要な場合に入力します。停止を伴うrestartより、reloadや専用シグナルを優先します。
確認コマンド
注意点
copytruncateはアプリ再起動不要ですが、コピー中に書き込まれたログが欠落する可能性があります。可能ならサービス側でログを再オープンする方式を優先します。
生成後に必ず確認すること
生成後はlogrotate --debugで解釈結果を確認し、ローテーション後の所有者・権限とサービスの書き込み継続を確認してください。
判定範囲と実環境での確認
このツールで確認できること
周期、保持世代、圧縮、create、copytruncate、postrotateなどから設定例を生成します。
このツールだけでは分からないこと
サービス固有のログ再オープン方法、SELinux、ファイルシステム、ディスク容量、logrotateのバージョン差までは完全には判定できません。
実環境で追加確認すること
logrotate --debugで解釈結果を確認し、ローテート後のファイル所有者・権限とサービスの書き込み継続を確認してください。
適用時の注意
logrotate -fは強制実行です。copytruncateやpostrotateを含む設定では、ログ欠落やサービス影響を確認してから使ってください。
よくある質問
createとcopytruncateはどちらを選ぶべきですか?
基本はcreateを使い、サービスにreloadやログ再オープン通知を行う方式が安全です。copytruncateは再オープンできないサービス向けですが、コピー中のログ欠落リスクがあります。
postrotateには何を書けばよいですか?
サービスが新しいログファイルを開き直すためのreloadや専用シグナルを記述します。停止を伴うrestartは、必要性を確認してから使ってください。
確認コマンドでは何が分かりますか?
logrotate -dまたは--debugで設定解釈、-fで強制実行、ls -lで生成後の所有者・権限を確認できます。-fは実際に処理するため注意が必要です。
logrotateの仕組み・トラブルも確認する
daily、size、rotate、compress、create、suなどの役割を確認します。
logrotate設定ガイド →設定読込・条件・state・定期実行・権限を順番に切り分けます。
トラブル切り分け →方式の違いと安全な選び方を確認します。
方式を比較 →判定がおかしい・対応してほしい設定がありますか?
OSや環境差による判定漏れ、分かりにくい表示、追加してほしい確認項目をお知らせください。設定内容は機密部分を伏せてください。