タグ: logrotateコマンド

検索結果: 1件

article-thumbnail

CentOS7で任意のログとデフォルトのログに対してログローテーション設定をする

【概要】CentOS7でログローテーションを設定し、有効化します。ログローテーションを有効化する事で、肥大化していくログファイルを日べつに区切る事ができます。また、一定期間でログを削除するのでログファイルによるサーバーのストレージ圧迫を回避します。ログを残しておきたい理由がなければログローテーションを設定する事をお勧めします。【Webアプリ用のlogrotateの設定】1. Webアプリ用のログローテーション設定ファイル作成touch /etc/logrotate.d/nginx-virtual-host2. ログローテーション設定ファイルの設定を記述vi /etc/logrotate.d/nginx-virtual-host設定内容/var/log/nginx/*/*.log { daily missingok rotate 30 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript}上記の「/var/log/nginx/*/*.log」部分がNginxのログディレクトリ配下にあるログファイルを全て対象する事になります。もし違う場所にNginxのログを出力している場合は、そのパスを指定して下さい。Cf. /etc/logrotate.d/nginx-virtual-hostの設定内容i. missingokログファイルが見つからなくてもエラーにしない。ii. rotate nn世代までログをローテート。それ以上は削除iii. compressローテートしてログを圧縮iv. delaycompress1つ前のファイルはまだ圧縮しない。それ以外を圧縮v. notifemptyログファイルが空ならローテーションしないvi. createローテーション後、新たにログファイルを作成する。権限、ユーザ、グループを指定。vii. sharedscriptsスクリプト宣言文。以降に記述された処理をワイルドカードの指定に関わらず、1度だけ実行するviii. postrotateログローテーション実施後に実行される部分【ログローテーションを実行する】・Nginxのログをログローテーションを行う※ 下記はデフォルト存在するログローテーション設定ファイルです。logrotate -f /etc/logrotate.d/nginx・作成した設定ファイルを指定しログローテーションを行うlogrotate -f /etc/logrotate.d/nginx-virtual-host【logrotateの設定反映をした時にエラーが出た際の対応方法】[概要]下記のコマンドを実行した際にエラーが発生したので、その対応方法をまとめています。logrotate -f /etc/logrotate.d/nginx-virtual-host・エラー内容error: skipping "/var/log/nginx/d-smart.jp/access.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.error: skipping "/var/log/nginx/d-smart.jp/error.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.上記のエラーは、ログローテーションを行う対象に対して必要な権限がない事が理由です。よって、ログローテーションの設定ファイルに権限の設定を記述します。[対応]1. ファイルの内容変更今回作成した設定ファイル「/etc/logrotate.d/nginx-virtual-host」に下記の権限設定を追加します。/var/log/nginx/*/*.log {...省略...su nginx adm...省略...}2. 設定反映logrotate -f /etc/logrotate.d/nginx-virtual-host3. 確認「/var/log/nginx/」配下にある、access.logとerror.logがログローテーションされていれば成功です。

カテゴリ: CentOS 2020-05-30 18:04:05