GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu で Logrotate を使用してログを管理する

コンピュータまたはサーバー環境のパフォーマンスは、システム メモリとディスクの使用量に大きく依存します。何かがより多くのディスク容量を消費している場合、システム エラーが発生します。同様に、このようなリスクを軽減するには、ログ ファイル サイズの増加を制御する必要があります。

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 のデフォルトおよび特定のアプリケーション構成ファイルを確認する方法を学習しました。ありがとうございます!


Linux
  1. Linuxlogrotateコマンドを使用してログをローテーションおよびアーカイブします

  2. Magento2データベース構成ファイル

  3. LinuxでのLogrotateの使用ログファイルの管理(例を含む)

  1. 方法:Journalctlを使用してシステムログを管理する

  2. ログローテーションユーティリティを理解する

  3. logrotate でログをローテーションできず、No such file エラーが発生する

  1. phpvirtualbox(Ubuntu 16.04 LTS)を使用したヘッドレスVirtualBoxインストールの管理

  2. Logrotateを使用してUbuntuでログを管理する方法

  3. Ubuntu - r/w パーミッションでイメージ ファイルをマウントする