Ubuntu12.10でLogrotateを使用してログファイルを管理する方法
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-?」を試してください。 詳細については。