20.2. ログファイルの場所の特定

ほとんどのログファイルは、/var/log/ ディレクトリ内にあります。httpdsamba などの一部のアプリケーションは、/var/log/ 内のディレクトリにログファイルを所有しています。
末尾に番号が付いた複数のファイル (例えば cron-20100906) が、/var/log/ ディレクトリ内にあることに気づくでしょう。これらの番号は、ローテーションしたログファイルに付加されたタイムスタンプを表します。ログファイルは、ファイルサイズが大きくなり過ぎないようにローテートされます。logrotate パッケージには、cron タスクが含まれています。これは、/etc/logrotate.conf 設定ファイル及び /etc/logrotate.d/ ディレクトリ内の設定ファイルに従ってログファイルを自動的にローテートします。

20.2.1. logrotate の設定

以下に、/etc/logrotate.conf 設定ファイルのサンプルを示します:
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# uncomment this if you want your log files compressed
compress
このサンプルの設定ファイル内にあるすべての行は、あらゆるログファイルに適用するグローバルオプションを定義します。この例では、ログファイルは毎週ローテートされ、ローテートされたログファイルは 4 週間保管されます。ローテートされたすべてのログファイルは、gzip により .gz 形式に圧縮されます。ハッシュ記号 (#) で始まる行は、コメントであり処理されません。
特定のログファイル用に設定オプションを定義して、それをグローバルオプション下に配置することもできます。ただし、/etc/logrotate.d/ ディレクトリ内に特定ログファイル用の個別の設定ファイルを作成して、そこに設定オプションを定義することが推奨されます。
以下は、設定ファイルが /etc/logrotate.d/ ディレクトリに配置されている例です:
/var/log/messages {
    rotate 5
    weekly
    postrotate
    /usr/bin/killall -HUP syslogd
    endscript
}
このファイル内の設定オプションは、/var/log/messages ログファイル専用の特有なものです。ここで指定された設定は、可能な場合はグローバルオプションを上書きします。そのため、ローテートされた /var/log/messages ログファイルは、グローバルオプションで定義された 4 週間ではなく、5 週間保管されます。
以下は、logrotate 設定ファイル内で指定できる指示文の一覧です:
  • weekly — 週ごとにログファイルのローテーションを指定します。同様な指示文は、以下のとおりです:
    • daily
    • monthly
    • yearly
  • compress — ローテートしたログファイルの圧縮を有効にします。同様な指示文は、以下のとおりです:
    • nocompress
    • compresscmd — 圧縮に使用するコマンドを指定します。
    • uncompresscmd
    • compressext — 圧縮に使用する拡張子を指定します。
    • compressoptions — 使用される圧縮プログラムに渡すオプションを指定できます。
    • delaycompress — ログファイルの圧縮を次回のログファイルのローテーションまで延期します。
  • rotate <INTEGER> — ログファイルが削除されるか特定のアドレスにメール送信されるまでに、ログファイルが受けるローテーションの回数を指定します。0 の値が指定されると、古いログファイルはローテートされる代わりに削除されます。
  • mail <ADDRESS> — このオプションは、rotate 指示文によって定義される回数だけローテートされたログファイルの指定したアドレスへのメール送信を有効にします。同様な指示文は、以下のとおりです:
    • nomail
    • mailfirst — 間もなく期限切れになるログファイルではなく、ローテートされたばかりのログファイルがメール送信されるよう指定します。
    • maillast — ローテートされたばかりのログファイルではなく、間もなく期限切れになるログファイルがメール送信されるよう指定します。mail が有効の場合は、これがデフォルトのオプションです。
指示文と各種設定オプションの総合一覧は、logrotate の man ページ (man logrotate) を参照して下さい。