Ops エージェントは、logging-module.log
というファイルにログを書き込みます。エージェントが長時間無人で実行されるか、問題が発生した場合、この「セルフログ」ファイルにより、使用可能なすべてのディスク容量が消費される可能性があります。このドキュメントでは、ログ ローテーションを使用して、この問題を回避する方法について説明します。
Ops エージェント バージョン 2.31.0 では、構成可能なログ ローテーション機能がエージェントに組み込まれています。Ops エージェント バージョン 2.31.0 以降を実行している場合は、組み込みのログ ローテーション機能を使用できます。Ops エージェントでログ ローテーションを構成するをご覧ください。
ログ ローテーションは手動で管理することもできます。ログ ローテーションが組み込まれていないバージョンの Ops エージェントを使用している場合や、ログを手動でローテーションする場合は、手動プロセスが必要になることがあります。考えられるアプローチについては、Linux VM でセルフログ ファイルのローテーションを設定するをご覧ください。
Ops エージェントでログ ローテーションを構成する
このセクションでは、Ops エージェントで使用されるログのデフォルトのローテーション構成を変更して、ログを自動的にローテーションする方法について説明します。この機能を使用するには、Ops エージェント バージョン 2.31.0 以降が必要です。
デフォルト構成
Ops エージェントは、default_self_log_file_rotation
エントリを使用してログ ローテーションを構成します。この構成エントリには 3 つのオプションがあります。次のスニペットは、オプションとそのデフォルト値を示しています。
default_self_log_file_rotation: enabled: true max_file_size_megabytes: 400 backup_count: 1
default_self_log_file_rotation
構成には次の 3 つのオプションがあります。
enabled
: ログ ローテーションが有効になっているかどうか。デフォルトはtrue
です。max_file_size_megabytes
: ログ ローテーションでバックアップされる前にログファイルが到達可能な最大サイズ。メガバイト単位(1,0242 バイト)。デフォルトは 400 です。有効な最小値は 1 です。backup_count
: 保持する古いログファイルの数。デフォルトは 1 です。有効な最小値は 1 です。
ログ ローテーションのユーザー構成
デフォルトのログ ローテーション構成を変更するには、Ops エージェント ユーザー構成ファイルで構成を再定義して、構成をオーバーライドします。
- Linux の場合:
/etc/google-cloud-ops-agent/config.yaml
- Windows の場合:
C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml
Ops エージェントでログ ローテーションを構成するには、ユーザー構成ファイルに global
セクションを追加し、global
セクションに構成要素 default_self_log_file_rotation
を含めます。この構成ファイルには、すでにロギング パイプラインまたは指標パイプラインが含まれている可能性があります。その場合は、パイプラインの後に global
セクションを追加します。すべてのオプションとデフォルト値を指定した結果は次のようになります。
logging: ... metrics: ... global: default_self_log_file_rotation: enabled: true max_file_size_megabytes: 400 backup_count: 1
構成例
Ops エージェントによるログ ローテーションを無効にする。値 false
を使用して enabled
オプションを指定します。
logging: ... metrics: ... global: default_self_log_file_rotation: enabled: false
ログファイルが 20 MB に達したときにログをローテーションし、5 つのバックアップ(合計 6 ファイル)を保持する:
logging: ... metrics: ... global: default_self_log_file_rotation: max_file_size_megabytes: 20 backup_count: 5
ログファイルが 2,000 MB(2 GB)に達したときにログをローテーションし、1 つのバックアップを保持する(合計 2 つのファイル):
logging: ... metrics: ... global: default_self_log_file_rotation: max_file_size_megabytes: 2000
ログファイルが 400 MB に達したときにログをローテーションし、2 つのバックアップを保持す(合計 3 つのファイル):
logging: ... metrics: ... global: default_self_log_file_rotation: backup_count: 2
ログ ローテーションの構成を調整するときに頻繁に変更を行う場合は、エージェントを再起動して変更を適用してください。
Linux VM でセルフログ ファイルのローテーションを設定する
/var/log/google-cloud-ops-agent/subagents/logging-module.log
のロギング サブエージェント ログのサイズを制限するには、logrotate
ユーティリティをインストールして構成します。
次のコマンドを実行して
logrotate
ユーティリティをインストールします。Debian、Ubuntu の場合
sudo apt install logrotate
CentOS、RHEL、Fedora の場合
sudo yum install logrotate
/etc/logrotate.d/google-cloud-ops-agent.conf
にlogrotate
構成ファイルを作成します。sudo tee /etc/logrotate.d/google-cloud-ops-agent.conf > /dev/null << EOF # logrotate config to rotate Google Cloud Ops Agent self log file. # See https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html for # the full options. /var/log/google-cloud-ops-agent/subagents/logging-module.log { # Log files are rotated every day. daily # Log files are rotated this many times before being removed. This # effectively limits the disk space used by the Ops Agent self log files. rotate 30 # Log files are rotated when they grow bigger than maxsize even before the # additionally specified time interval maxsize 256M # Skip rotation if the log file is missing. missingok # Do not rotate the log if it is empty. notifempty # Old versions of log files are compressed with gzip by default. compress # Postpone compression of the previous log file to the next rotation # cycle. delaycompress } EOF
logrotate
ユーティリティを定期的にトリガーするように、crontab
またはsystemd timer
を設定します。
ログ ローテーションが有効になると、ローテーションされたファイルが /var/log/google-cloud-ops-agent/subagents/
ディレクトリに表示されます。出力は次のようになります。
/var/log/google-cloud-ops-agent/subagents$ ls -lh
total 24K
-rw-r--r-- 1 root root 717 Sep 3 19:54 logging-module.log
-rw-r--r-- 1 root root 6.8K Sep 3 19:51 logging-module.log.1
-rw-r--r-- 1 root root 874 Sep 3 19:50 logging-module.log.2.gz
-rw-r--r-- 1 root root 873 Sep 3 19:50 logging-module.log.3.gz
-rw-r--r-- 1 root root 3.2K Sep 3 19:34 logging-module.log.4.gz
ログ ローテーションをテストするには、次の操作を行います。
/etc/logrotate.d/google-cloud-ops-agent.conf
ファイルでmaxsize
値を1k
に設定することにより、ローテーションがトリガーされるファイルサイズを一時的に小さくします。エージェントを数回再起動して、エージェントのセルフログ ファイルが 1K より大きくなるようにします。
sudo service google-cloud-ops-agent restart
crontab
またはsystemd timer
が有効になるまで待機してlogrotate
ユーティリティをトリガーするか、次のコマンドを実行してlogrotate
ユーティリティを手動でトリガーします。sudo logrotate /etc/logrotate.d/google-cloud-ops-agent.conf
ローテーションされたログファイルが
/var/log/google-cloud-ops-agent/subagents/
ディレクトリに表示されることを確認します。元の
maxsize
値を復元して、ログ ローテーションの構成をリセットします。