logrotateによるhttpdログローテーション設定

httpdの設定後はログローテーション設定を行なっておきましょう。
ローテーションをしないとログが1ファイルになり容量だ肥大化して検証時に余計な手間がかかります。

ログローティション対象のhttpdログファイル

ローテーションする対象は以下とします。

/var/log/httpd/access_log
/var/log/httpd/error_log

作業について

以下の作業はroot権限で作業しています。root権限以外で作業する場合はsudoを付けるなど読み替えてください。

設定ファイルの変更

下記のログローテーション設定ファイルを開きます。

# vi /etc/logrotate.d/httpd

以下の3つのパラメータを追記します。

  • daily・・・ログを日毎に分割。月毎に分ける場合は「monthly」を指定。
  • rotate・・・ログを残しておく世代を指定。指定数を超えたログは削除。
    設定例では7世代保存にしています。
  • compress・・・ローテーションしたログをgzipで圧縮。
/var/log/httpd/*log {
    daily
    missingok
    rotate 7
    notifempty
    sharedscripts
    compress
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}

動作確認

翌日以降に日単位でログファイルが作成されているか確認します。

logrotateコマンドで動作確認をします。オプションを付けずに実行するとログローテーションが実行されてしまうので必ずオプション付き(特にd)で実行します。

# logrotate -dv /etc/logrotate.d/httpd

2つのオプションは以下のようになります。

  • -d・・・実際にはログとーテーションせずにデバグモードで実行。
  • -v・・・詳細情報を表示

設定反映の確認

翌日以降に日単位でログファイルが作成されているか確認します。

-rw-r--r--  1 root root    0 12月 28 03:38 access_log
-rw-r--r--  1 root root 5004 12月 27 18:47 access_log-20191228
-rw-r--r--  1 root root  440 12月 29 03:32 error_log
-rw-r--r--  1 root root  491 12月 28 03:38 error_log-20191228.gz
-rw-r--r--  1 root root  756 12月 29 03:32 error_log-20191229
-rw-r--r--  1 root root    0 12月 28 03:38 ssl_access_log
-rw-r--r--  1 root root 7030 12月 27 19:01 ssl_access_log-20191228
-rw-r--r--  1 root root    0 12月 27 18:35 ssl_error_log
-rw-r--r--  1 root root    0 12月 27 18:35 ssl_request_log

以上で設定は完了です。

(Visited 238 times, 1 visits today)