もっと詳しく

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

Logrotateは、ログファイルをローテーション、圧縮、およびシステムログにメールで送信するシステムユーティリティとして導入されました。 このようなログファイルの管理により、ディスクスペースの使用量が削減され、システムエラーが防止されます。

この記事では、Ubuntu20.04LTSサーバーでのlogrotateのインストールプロセスと構成について説明します。

Ubuntu20.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

出力:

logrotate.conf

特定のアプリケーションの構成

上のスクリーンショットには、次のような構成があります。 /etc/logrotate.d つまり、特定のアプリケーションの構成をこのディレクトリで設定できます。 ここでは、以下に示すようにdpkgの設定を示します。

$ cd /etc/logrotate.d/
$ cat dpkg

pkg logrotate config

構成の各行の詳細を取得するには、以下で説明するポイントを確認してください。 これらの構成は、dpkgなどの特定のアプリケーションの/etc/logrotate.confのデフォルト構成を置き換えます。

  • 毎月:月に1回ローテーションします。 要件に応じて、毎日、毎週に置き換えることができます。
  • ローテーション12:12個の古いログファイルが保持されます。 /etc/logrotate.confのデフォルトの4を置き換えます
  • compress:このアプリケーションのログファイルはgzipを使用して圧縮されます
  • delaycompress:前のログファイルの次のローテーションサイクルへの圧縮は、一部のプログラムでまだ使用されているため延期されます。
  • missingok:ログファイルが欠落している場合はエラーメッセージを書き込まないでください
  • notifempty:ログファイルが空の場合はローテーションしないでください
  • create 644 root root:ログファイルは、rootとしてユーザーとグループを使用して権限644で作成されます

Logrotate構成ファイルの作成

nginxのようなアプリケーションをインストールし、そのログファイルが / var / log / nginx / 次に、以下に示すコマンドを使用して、この特定のアプリのログローテーション構成ファイルを設定できます。

logrotateディレクトリに移動します

$ cd /etc/logorate.d/

エディターでログローテーションファイルを作成する

$ vim nginx

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パッケージのインストール中に、内部のプロセスでcrontabファイルも作成されます /etc/cron.daily logrotateという名前で。 詳細については、以下に示すスクリーンショットを確認してください。

$ cat /etc/cron.daily/logrotate

cronjobをログローテーションする

結論

この記事では、logrotateパッケージをインストールし、crontabの実装を使用してlogrotateのデフォルトおよび特定のアプリケーション構成ファイルを確認する方法を学習しました。 ありがとうございました!

The post UbuntuでのLogrotateによるログの管理– VITUX appeared first on Gamingsym Japan.