コンピュータまたはサーバー環境のパフォーマンスは、システム メモリとディスクの使用量に大きく依存します。何かがより多くのディスク容量を消費している場合、システム エラーが発生します。同様に、このようなリスクを軽減するには、ログ ファイル サイズの増加を制御する必要があります。
Logrotate は、ローテーション、ログ ファイルの圧縮、およびシステム ログのメール送信を行うシステム ユーティリティとして導入されました。このようなログ ファイルの管理により、ディスク スペースの使用量が削減され、システム エラーが防止されます。
この記事では、Ubuntu 20.04 LTS サーバーでの logrotate のインストール プロセスと構成について説明します。
Ubuntu 20.04 サーバーへの Logrotate のインストール
Ubuntu ではデフォルトで logrotate がインストールされていますが、インストールされていない場合は、以下のコマンドでインストールできます。
$ sudo apt update $ sudo apt install logrotate
以下のコマンドでインストールを確認できます。
$ logrotate --version
Logrotate 構成ファイル
logrotate の構成ファイルは、logrotate デーモンによって作成されます。以下に示すように、このような構成には 2 つのパスがあります。
/etc/logrotate.conf
通常、logrotate ユーティリティ用に作成される構成ファイルです
/etc/logrotate.d/
アプリケーションの特定のローテーションで構成されるディレクトリです。デフォルトでは、/etc/logrotate.conf が使用されますが、アプリケーションごとに異なる構成にするために、/etc/logrotate.d/ で設定できます。
デフォルトの Logrotate 構成ファイル
ご存じのとおり、/etc/logrotate.conf デフォルトの構成ファイルです。下のスクリーンショットに示すように、構成ファイルを確認しましょう。
以下に示すコマンドで構成ファイルを確認してください。
$ cat /etc/logrotate.conf
出力:
特定のアプリケーションの構成
上のスクリーンショットには、include /etc/logrotate.d という構成があります。 これは、特定のアプリケーションの構成をこのディレクトリに設定できることを意味します。ここでは、以下に示すように dpkg の構成を示します。
$ cd /etc/logrotate.d/
$ cat dpkg
構成の各行の詳細を取得するには、以下で説明するポイントを確認してください。これらの構成は、dpkg などの特定のアプリケーションの /etc/logrotate.conf のデフォルト構成を置き換えます。
- 毎月:月に 1 回ローテーションします。要件に応じて、毎日、毎週に置き換えることができます。
- rotate 12:12 個の古いログ ファイルが保持されます。 /etc/logrotate.conf のデフォルトの 4 を置き換えます
- compress:このアプリケーションのログ ファイルは gzip を使用して圧縮されます
- delaycompress:次のローテーション サイクルまでの前のログ ファイルの圧縮は、一部のプログラムでまだ使用されているため、延期されます。
- missingok:ログ ファイルが見つからない場合、エラー メッセージを書き込まないでください
- notifempty:ログ ファイルが空の場合はローテーションしません
- create 644 root root:ログ ファイルは権限 644 で作成され、ユーザーとグループは root になります
Logrotate 構成ファイルの作成
nginx などのアプリケーションをインストールし、そのログ ファイルが /var/log/nginx/ に作成されているとします。 次に、以下に示すコマンドを使用して、この特定のアプリの logrotate 構成ファイルをセットアップできます。
logrotate ディレクトリに移動します
$ cd /etc/logorate.d/
エディターで logrotate ファイルを作成する
$ vim nginx
/var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi \ endscript postrotate invoke-rc.d nginx rotate >/dev/null 2>&1 endscript }
上記の構成では、ローテーションを 14 に設定しているため、14 個の古いログ ファイルが保持され、ログ ファイルは gzip を使用して圧縮されます。上記のファイルで使用される別の構成は、logrotate 構成ファイルのセクションでほぼ説明されています。以下に示すように、新しく作成した構成を sudo 特権ユーザーで実行できます。
$ sudo logrotate -d /etc/logrotate.d/nginx
ここでは、下のスクリーンショットに示すようにログ ファイルが実行されます。
cron によるログローテーション
logrotate パッケージのインストール中に、/etc/cron.daily 内のプロセスに crontab ファイルも作成されます。 logrotate という名前で。詳細については、以下に示すスクリーンショットを確認してください。
$ cat /etc/cron.daily/logrotate
結論
この記事では、logrotate パッケージをインストールし、crontab の実装を使用して logrotate のデフォルトおよび特定のアプリケーション構成ファイルを確認する方法を学習しました。ありがとうございます!