0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Apacheのログローテートを設定する

Posted at

はじめに

Apacheのアクセスログやエラーログは、放っておくとどんどん肥大化していきます。
実際に私が担当していたサーバーで数GBのログファイルができていました。

そんなときに必要になるのが 「logrotate(ログローテート)」 の設定です。

本記事では、

  • Apacheログのローテーション設定方法
  • よくある権限エラーの対処法
  • 実際の動作確認コマンド
    をまとめました。

Apacheログの保存場所を確認する

まずは、Apacheのログファイルがどこに出力されているかを確認します。

# 例
ls /var/log/apache2/

主なログは以下の2つです:

  • access.log … アクセスログ
  • error.log … エラーログ

ログローテートの仕組みとは?

logrotate は、Linuxでログを定期的に整理・圧縮・削除する仕組みです。

設定ファイルは以下の場所にあります:

/etc/logrotate.conf                # 全体設定
/etc/logrotate.d/                  # 各アプリ用の個別設定
/etc/logrotate.d/apache2           # apache2の設定ファイル

基本設定例(最小構成)

まずは、シンプルな設定例から。

/var/log/apache2/*.log {
    daily
    rotate 14
    size 100M
    missingok
    notifempty

    compress
    delaycompress
    dateext
    dateformat -%Y%m%d

    su root adm
    create 0640 www-data adm
    sharedscripts
    postrotate
        /usr/sbin/apachectl -k graceful > /dev/null 2>&1 || true
    endscript
}

各オプションの意味

オプション 説明
daily 毎日ローテートする
rotate 14 14世代分のログを保持(=2週間分)
size 100M サイズが100MBを超えたらローテートする
compress ログをgzipで圧縮(例:access.log → access.log.1.gz)
delaycompress 次のローテートまで圧縮を遅らせる(最新ログは未圧縮)
su root adm ローテート時のユーザー/グループ指定(重要!)
create 0640 www-data adm 新規ログファイルをこの権限で作成する
postrotate ... endscript ローテート後にApacheを再起動(ログ再オープン)

ログローテートのテスト方法

設定を反映する前に、必ずドライラン(dry-run)を実行しましょう。

sudo logrotate -d /etc/logrotate.conf

出力を確認して問題なければ、実際にローテートします。

sudo logrotate -f /etc/logrotate.conf

ローテートの状態確認

実際にどのログがローテートされたかは以下で確認できます👇

cat /var/lib/logrotate/status

古いログの削除と圧縮状態を確認

ls -lh /var/log/apache2/

# 圧縮ファイルを確認
zcat /var/log/apache2/access.log-20250929.gz | head
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?