/etc/logrotate.conf:ログローテートのメイン設定ファイル

/etc/logrotate.conf

/etc/logrotate.confについての概要と詳細

/etc/logrotate.confとは

/etc/logrotate.conf は、Linuxシステムのログファイルを自動的にローテーション(世代管理・圧縮・削除)するためのメイン設定ファイルです。定期的なログの整理や容量管理、長期保存など、ログ運用を自動化し、システムの安定運用に欠かせない存在です。

主な役割

  • システムやアプリケーションのログファイルを定期的にローテーション(ファイル名を変更して世代保存)
  • 古いログの自動圧縮や自動削除
  • 保存世代数やファイルサイズ、圧縮方法などの細かな設定
  • ログローテーション時の通知やスクリプト実行

ファイルの記述例と構成

# /etc/logrotate.conf の例
weekly                  # ローテーションの周期(例:週1回)
rotate 4                # 保存する世代数(4世代まで)
create                  # ローテーション後に新規ファイル作成
compress                # ローテーション時にgzip圧縮
include /etc/logrotate.d    # 追加設定ディレクトリの指定

/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}
  • globalオプション: ファイル先頭に記述。全体に共通する設定(周期・世代数・圧縮など)
  • 個別ログごとの設定: ログファイル名とブロックで指定。個別オプションの上書きも可能
  • include: /etc/logrotate.d/配下の個別設定ファイルも読み込む

主なオプション例

  • daily/weekly/monthly:ローテーション周期指定
  • rotate N:保存する世代数
  • compress:ローテーション時にgzip等で圧縮
  • create [mode] [owner] [group]:新規ログファイルの権限・所有者指定
  • missingok:ファイルがなくてもエラーにしない
  • postrotate ... endscript:ローテーション後に実行するスクリプト

動作確認と手動実行

# 設定のテスト(エラーや警告の確認)
$ sudo logrotate -d /etc/logrotate.conf

# 手動でローテーションを実施
$ sudo logrotate -f /etc/logrotate.conf

注意点

  • システムやサービスごとの追加設定は/etc/logrotate.d/に個別ファイルで配置
  • 設定ミスや過剰な圧縮でログ監査やトラブル対応に支障をきたす場合もあるので要注意
  • cronやsystemd-timerにより定期的に自動実行されている(通常は設定不要)

まとめ

/etc/logrotate.conf は、Linuxにおけるログ管理・運用の自動化を担う重要な設定ファイルです。適切に設定・運用することで、ストレージの肥大化防止や監査対応などシステム管理の効率化につながります。運用方針に合わせて最適なローテーション設定を心がけましょう。