Linux でログローテーションが設定されているかどうかを確認する方法

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux システムでログローテーションが設定されているかどうかを確認する方法を学びます。ログローテーションは、ログファイルを管理し、過度のディスク容量を消費するのを防ぐための重要なプロセスです。主な logrotate 設定ファイルを調べ、アプリケーション固有のログローテーションスクリプトを確認し、logrotate -d コマンドを使用して状態を調べ、ログローテーションプロセスをシミュレートします。

この実験の手順に従うことで、Linux システムのログローテーション設定を検証し理解する実践的な経験を積み、効率的なログファイル管理を確保することができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") subgraph Lab Skills linux/ls -.-> lab-558731{{"Linux でログローテーションが設定されているかどうかを確認する方法"}} linux/cat -.-> lab-558731{{"Linux でログローテーションが設定されているかどうかを確認する方法"}} linux/service -.-> lab-558731{{"Linux でログローテーションが設定されているかどうかを確認する方法"}} linux/sudo -.-> lab-558731{{"Linux でログローテーションが設定されているかどうかを確認する方法"}} end

cat /etc/logrotate.conf で logrotate の設定を確認する

このステップでは、logrotate のメイン設定ファイルを表示する方法を学びます。logrotate は、大量のログファイルを生成するシステム上のログファイルの管理を簡素化するために設計されたユーティリティです。これにより、ログファイルの自動ローテーション、圧縮、削除、およびメール送信が可能になります。

logrotate のメイン設定ファイルは /etc/logrotate.conf にあります。このファイルにはグローバル設定が含まれており、/etc/logrotate.d/ ディレクトリからの特定のアプリケーションまたはサービスの設定も含まれています。

logrotate のメイン設定ファイルの内容を表示するには、cat コマンドを使用します。cat コマンドは、ファイルを順次読み取り、標準出力に書き出す標準的な Unix ユーティリティです。

ターミナルが開いていない場合は、開きます。デスクトップの左側にある Xfce Terminal アイコンをクリックすることで行えます。

次に、以下のコマンドをターミナルに入力し、Enter キーを押します。

cat /etc/logrotate.conf

このコマンドにより、/etc/logrotate.conf ファイルの全内容がターミナルに直接表示されます。

以下のような出力が表示されます。

## 詳細については "man logrotate" を参照してください

## ログファイルを毎週ローテーションする
weekly

## デフォルトで syslog グループを使用する。これは /var/log/syslog の所有グループであるため。
su root syslog

## 4 週間分のバックログを保持する
rotate 4

## 古いログファイルをローテーションした後に新しい(空の)ログファイルを作成する
create

## ログファイルを圧縮したい場合はこの行のコメントを解除する
#compress

## パッケージはログローテーション情報をこのディレクトリに配置する
include /etc/logrotate.d

## システム固有のログもここで設定できる。

この出力は、logrotate のデフォルト設定を示しています。たとえば、ログを毎週ローテーションする (weekly)、4 週間分のログを保持する (rotate 4)、ローテーション後に新しいログファイルを作成する (create) などです。また、include /etc/logrotate.d という行があり、これは logrotate にそのディレクトリから追加の設定ファイルを読み取るよう指示しています。

メイン設定ファイルを理解することは、Linux システムでのログローテーションを管理する最初のステップです。

Continue をクリックして次のステップに進みます。

/etc/logrotate.d の logrotate スクリプトを確認する

前のステップで、メインの logrotate.conf ファイルには /etc/logrotate.d/ ディレクトリからの設定ファイルが含まれていることを見ました。このディレクトリは、個々のアプリケーションやサービスが独自の logrotate 設定ファイルを配置する場所です。

/etc/logrotate.d/ 内の各ファイルには、通常、特定のプログラムのログファイルをどのようにローテーションするかに関する指示が含まれています。このモジュール方式により、システム上の多くの異なるサービスのログローテーションを簡単に管理することができます。

このディレクトリに存在する設定ファイルを確認するには、ls コマンドを使用します。ls コマンドは、ディレクトリの内容を一覧表示します。

以下のコマンドをターミナルに入力し、Enter キーを押します。

ls /etc/logrotate.d/

このコマンドにより、/etc/logrotate.d/ ディレクトリ内のすべてのファイルが一覧表示されます。

システムにインストールされているソフトウェアによって異なりますが、次のようなファイルのリストが表示されます。

apt  auth.log  dpkg  rsyslog

これらのファイル名は、多くの場合、ログがローテーションされるサービスやアプリケーションに対応しています(例:パッケージマネージャの apt、システムログの rsyslog)。

これらの設定ファイルの 1 つを詳しく見るには、再び cat コマンドを使用できます。たとえば、apt の設定を表示してみましょう。

cat /etc/logrotate.d/apt

これにより、apt の logrotate 設定ファイルの内容が表示されます。apt のログファイルをどのようにローテーションするかに関する具体的な指示が表示され、どのログファイルをローテーションするか、どのくらいの頻度で、何個の古いログを保持するかなどがわかります。

/etc/logrotate.d/ 内のファイルを調べることで、システム上の異なるサービスのログローテーションがどのように設定されているかを理解することができます。

Continue をクリックして次のステップに進みます。

logrotate -d で logrotate の状態を調査する

この最後のステップでは、logrotate コマンドに -d オプションを使用して「ドライラン」を実行する方法を学びます。ドライランは、logrotate が実際に実行するアクションをシミュレートしますが、実際には何も実行しません。これは、logrotate の設定をテストし、logrotate が実際に実行されたときに何が起こるかを理解するのに非常に役立ちます。

-d オプションは「デバッグ」または「ドライラン」を意味します。このオプションを使用すると、logrotate は設定ファイルを読み取り、実行する内容を報告しますが、ファイルを変更したり、ログをローテーションしたりすることはありません。

logrotate は通常、/var/log のようなシステムディレクトリ内のログファイルにアクセスして変更するために root 権限が必要です。そのため、必要な権限で logrotate を実行するには sudo コマンドを使用する必要があります。この環境では、labex ユーザーはパスワードを必要とせずに sudo 権限を持っていることを忘れないでください。

以下のコマンドをターミナルに入力し、Enter キーを押します。

sudo logrotate -d /etc/logrotate.conf

このコマンドを分解してみましょう。

  • sudo: スーパーユーザー権限でコマンドを実行します。
  • logrotate: ログファイルを管理するコマンドラインユーティリティです。
  • -d: ドライラン(デバッグモード)を実行するオプションです。
  • /etc/logrotate.conf: logrotate が読み取るメインの設定ファイルです。

このコマンドの出力は非常に詳細になります。logrotate が対象としているログファイル、それらに適用される設定指示、および現在の状態と設定に基づいてローテーションが必要かどうかが表示されます。

メインの設定ファイルと /etc/logrotate.d/ から含まれるファイルの処理の詳細が出力されます。各ログファイルについて、ローテーションが必要かどうかとその理由(例:サイズ、日付)が示されます。

出力の例として、次のような行が含まれる場合があります。

reading config file /etc/logrotate.conf
including /etc/logrotate.d
reading config file apt
...
rotating pattern: /var/log/apt/term.log /var/log/apt/history.log  weekly
...
considering log /var/log/apt/term.log
  log does not need rotating
considering log /var/log/apt/history.log
  log does not need rotating
...

この出力は、logrotateapt の設定を読み取り、そのログファイルは現在ローテーションする必要がないと判断したことを確認しています。

logrotate -d を使用することは、新しいまたは変更された logrotate 設定をデプロイする前に、ログファイルに意図しない問題を引き起こすことなく期待どおりに動作することを確認するための重要なステップです。

これで、メインの logrotate 設定を調査し、個々の設定ファイルを表示し、logrotate がどのように動作するかを確認するためのドライランを実行することに成功しました。

Continue をクリックしてこの実験を完了します。

まとめ

この実験では、Linux でログローテーションが設定されているかどうかを確認する方法を学びました。まず、cat コマンドを使用して /etc/logrotate.conf にあるメインの logrotate 設定ファイルを調べました。このステップで、ログローテーションのグローバル設定、例えばローテーション頻度、保持期間、および /etc/logrotate.d ディレクトリからのアプリケーション固有の設定の読み込みについて確認しました。

メイン設定の調査に続いて、通常は /etc/logrotate.d ディレクトリ内の個々の logrotate スクリプトを検証し、特定のアプリケーションのログがどのように処理されるかを理解します。最後に、logrotate -d コマンドを使用して logrotate の状態を調査し、ドライランを実行して、実際に変更を加えることなくログローテーションがどのように実行されるかを確認し、設定の有効性を確認することができます。