インフラ作業支援ラボInfra Support Lab ← logrotateメニューへ ← 戻る

logrotate設定を作成

設定例を作るだけでなく、権限、圧縮、ローテーション方式、後処理の注意点と確認コマンドまで表示します。

このツールで防げること

ログ肥大化、保持不足、create権限の誤り、copytruncateやpostrotateによる運用事故を事前に確認します。

作る → 確認する → 適用前に試す 設定例だけで終わらず、問題候補と確認コマンドまで表示します。
入力内容はブラウザ内で処理され、設定内容を外部AIへ送信しません。ページ閲覧情報はアクセス解析に利用します。

絶対パスで指定します。ワイルドカードも使用できます。

ログ量に合わせて選びます。大量ログなら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や専用シグナルを優先します。

「後処理を1回だけ実行」を選ぶと、設定にsharedscriptsを追加します。ワイルドカードで複数ログが対象でも、postrotateをまとめて1回だけ実行します。

条件付き推奨 複数ログをまとめて処理し、同じサービスへのreloadを1回だけ行いたい場合に選びます。ログごとに別の処理が必要なら選びません。


確認コマンド


注意点

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は実際に処理するため注意が必要です。