Logrotateについて

Logrotateは、システム内のログファイルの自動ローテーション、削除、圧縮などのアクティビティを管理するユーティリティ/ツールです。 これは、ログを管理して貴重なディスク領域を節約するための優れたツールです。 シンプルでありながら強力な構成ファイルを用意することで、ログローテーションのさまざまなパラメーターを制御できます。 これにより、ログを自動的に管理する方法を完全に制御でき、手動による介入を必要としません。

前提条件

前提条件として、ドロップレットまたはVPSの設定方法に関する記事を読んだことを前提としています。 そうでない場合は、ここの記事を見つけることができます。 このチュートリアルでは、VPSを起動して実行し、ログインする必要があります。

Logrotateのセットアップ

ステップ1-システムおよびシステムパッケージを更新する

次のコマンドを実行して、apt-getからパッケージリストを更新し、パッケージの最新バージョンとその依存関係に関する情報を取得します。

sudo apt-get update

ステップ2-Logrotateをインストールする

logrotateがまだVPSにない場合は、apt-getを使用して今すぐインストールしてください。

sudo apt-get install logrotate

ステップ3—確認

logrotateが正常にインストールされたことを確認するには、コマンドプロンプトでこれを実行します。

logrotate

logrotateユーティリティは構成ファイルに基づいているため、上記のコマンドはファイルをローテーションせず、使用法の概要と使用可能なスイッチオプションを表示します。

ステップ4-Logrotateを構成する

logrotateユーティリティの構成とデフォルトオプションは次の場所にあります。

/etc/logrotate.conf

重要な構成設定には、rotation-interval、log-file-size、rotation-count、およびcompressionがあります。

アプリケーション固有のログファイル情報(デフォルトを上書きするため)は、次の場所に保持されます。

/etc/logrotate.d/

概念をよりよく理解するために、いくつかの例を見ていきます。

ステップ5-例

アプリケーション構成設定の例は、/ etc / logrotate.d / dpkgに保存されているdpkg(Debianパッケージ管理システム)です。 このファイルのエントリの1つは次のとおりです。

/var/log/dpkg.log {
	monthly
	rotate 12
	compress
	delaycompress
	missingok
	notifempty
	create 644 root root
}

これが意味することは次のとおりです。

  • dpkgのlogrotationは、/ var / log / dpkg.logファイルを監視し、これを月単位で実行します。これがローテーション間隔です。
  • 「rotate12」は、12日分のログが保持されることを意味します。
  • ログファイルは、「compress」を指定することでgzip形式を使用して圧縮でき、「delaycompress」は次のログローテーションまで圧縮プロセスを遅らせます。 ‘delaycompress’は、’compress’オプションが指定されている場合にのみ機能します。
  • ‘missingok’は、エラーが発生したときに停止することを回避し、次のログファイルを続行します。
  • ‘notifempty’は、ログファイルが空の場合にログローテーションを回避します。
  • ‘作成 ‘ログローテーション後に、指定されたプロパティで新しい空のファイルを作成します。

上記の例にはありませんが、システムで増大するログのサイズを制御する場合は、「サイズ」も重要な設定です。

約100MBの構成設定は次のようになります。

size 100M

サイズと回転間隔の両方が設定されている場合は、サイズが優先されることに注意してください。 つまり、構成ファイルに次の設定がある場合:

monthly
size 100M

次に、ファイルサイズが100Mに達するとログがローテーションされ、これは月次サイクルを待つ必要はありません。

ステップ6-cronジョブ

ログローテーションをcronとして設定して、手動プロセスを回避し、これが自動的に処理されるようにすることもできます。 /etc/cron.daily/logrotateにエントリを指定すると、ローテーションが毎日トリガーされます。

ステップ7—ステータスのチェックと検証

特定のログが実際にローテーションされているかどうかを確認し、そのローテーションの最後の日時を確認するには、/ var / lib / logrotate/statusファイルを確認します。 これは、ログファイル名と最後にローテーションされた日付を含む、きちんとフォーマットされたファイルです。

cat /var/lib/logrotate/status 

このファイルのいくつかのエントリ、例:

"/var/log/lpr.log" 2013-4-11
"/var/log/dpkg.log" 2013-4-11
"/var/log/pm-suspend.log" 2013-4-11
"/var/log/syslog" 2013-4-11
"/var/log/mail.info" 2013-4-11
"/var/log/daemon.log" 2013-4-11
"/var/log/apport.log" 2013-4-11

おめでとう! システムにlogrotateがインストールされています。 次に、要件に従って構成設定を変更します。

「manlogrotate」または「logrotate-?」を試してください。 詳細については。