自宅サーバー ≫ Linux Server ≫ CentOS Stream 8 ≫ Webサーバー (ログの肥大化防止 apache)

 
Apache ログの肥大化防止
Apacheのアクセスログ・エラーログは放っておくとどんどん肥大化するのでlogrotateを使って定期的に削除する
Apacheをパッケージからインストールした場合はlogrotateもインストールされているが、ソースからインストールした場合はインストールする必要がある
logrotate(ログローテション)とは一定のタイミングで過去のログを削除しログの肥大化を防ぐ
logrotateのインストール確認
 
 
[root@centos]# rpm -qa|grep logrotate
 logrotate-3.14.0-4.el8.x86_64
 
バージョン等が表示されればインストールされているが表示されなければインストールする
 
 
[root@centos]# dnf -y install logrotate
 
ログローテションの基本設定
 
 
[root@centos]# vi /etc/logrotate.conf
 # see "man logrotate" for details
 # rotate log files weekly
 weekly
 
・ログを毎週ローテーションする
 ・daily = 毎日
 ・weekly = 毎週
 ・monthly = 毎月
 ・自分の環境や好みに合わせて変更


 # keep 4 weeks worth of backlogs
 rotate 4
 
・ローテーションする回数を指定 ここでは4回
 ・ここでは上記の設定で毎週になっているので4週間分保存
 ・この記載が無い場合は rotate 0 と解釈され、古いログを全て削除
 ・自分の環境や好みに合わせて変更


 # create new (empty) log files after rotating old ones
 create
 
・ローテーションの実行で古いログファイルをリネームした直後に後に新しいファイルを作成
 ・パーミッション(mode)・所有者(owner)・所有グループ(group)も指定できる


 # use date as a suffix of the rotated file
 dateext
 
・ローテーションしたファイルを日付8桁(-YYYYMMDD) 形式でリネーム

 # uncomment this if you want your log files compressed
 #compress
 
・ローテーションしたログをgzipで圧縮 ここではコメント化(ログを圧縮しない)

 # RPM packages drop log rotation information into this directory
 include /etc/logrotate.d
 
・各ログファイルの設定がおかれているパスを指定
 ・直接、logrotate.conf (このファイル)にローテーションの設定を書くか
   /etc/logrotate.d 以下にファイルを作成してそこにログローテート用の設定ファイルを置いてもOK
 ・ここでは以下にある /etc/logrotate.d/httpd に記述


 # system-specific logs may be also be configured here.
 
ログローテションの詳細設定
 
 [root@
centos]# vi /etc/logrotate.d/httpd
 /var/log/httpd/*log {
 
・ローテートするファイルを指定
 
・*を設定する事で/var/log/httpd/内の全てのlogファイルが対象

     missingok
    
・missingok・・・ログファイルがなくてもエラーにならない
    
・nomissingok・・・ログファイルがない場合エラーにする

     notifempty
    
・ログファイルが空ならローテーションしない

     sharedscripts
    
・/var/log/httpd/*logに該当するファイルが複数ある場合でも postrotateからendscript
      
までの実行は1回のみ

 

     delaycompress
    
・ログの圧縮作業を次回のローテーション時まで遅らせる。compressと共に指定

     postrotate
    
・postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行

           /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
          
・httpdを再起動
          
・/etc/logrotate.confで新たに作成したログファイルに記録開始

     endscript

 }

 
ログ解析ソフト
上記設定はデフォルトのままで特に問題はないので変更する必要は無いが解析ソフト等を利用する場合は利用するソフトに合わせて変更する

戻る