Ops エージェントは VM インスタンスのテレメトリーを収集して、[Monitoring] メニューから各種の情報をグラフ化して見せてくれます。ところで、ディスクの空き容量が減ってきたので原因を調査したところ、この Ops エージェントのログファイルの肥大化が原因であることが判明しました。
Ops エージェントを調査したところ、Linux VM の場合、ログファイルは自分でローテーションを設定しなければないらないようです。Google Cloud の「Linux VM でセルフログ ファイルのローテーションを設定する」に書いてありました。
以下に設定時のポイントを備忘録としてまとめます。
なお、全ての操作は GCP 管理コンソールを開き「Computer Engine」 の「 VMインスタンス」内の 「SSH 接続」から行えます。
「du コマンド」で /var の情報を確認してみます。
sudo du -m /var | sort -rn | head -10
以下「du コマンド」のアウトプットです。
11114 /var 7916 /var/log 6081 /var/log/google-cloud-ops-agent/subagents 6081 /var/log/google-cloud-ops-agent 2658 /var/lib 2215 /var/lib/snapd 1817 /var/log/journal/e9ebfdb0f12e07f98161ee27f1299bcb 1817 /var/log/journal 1390 /var/lib/snapd/snaps 481 /var/lib/snapd/seed/snaps
/var/log/google-cloud-ops-agent/subagents/ が肥大化しているのを確認。そのサイズは 6,081 M 。
なお、Ops エージェントのログのファイル名は ...
/var/log/google-cloud-ops-agent/subagents/logging-module.log
さて、「logrotate」コマンドはインストール済みですので、Google Cloud の説明に従い、Ops エージェントログのローテーション用の構成ファイルを作成します。「tee コマンド」で 直接作成します。以下の情報をそのままコピーして実行します。
作成ファイル名:/etc/logrotate.d/google-cloud-ops-agent.conf
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
作成後「cat コマンド」で /etc/logrotate.d/google-cloud-ops-agent.conf
に情報が書き込まれたことを確認しましょう。
cat /etc/logrotate.d/google-cloud-ops-agent.conf
logrotate
は、/etc/cron.daily にスケジュール済みですので、作業はこれで完了です。もし、Webmin をインストールしているなら「cron ジョブのスケジュール」から簡単に確認できます。
daily が指定されているので、毎日ログファイルが切り換わるはずです。
すでに /var/log/google-cloud-ops-agent/subagents/logging-module.log が肥大化しているなら、思い切ってそのログファイルを削除してみましょう。
翌日以降は「ls コマンド」で ログファイルが切り換わっていることが
確認できます。
ls -l /var/log/google-cloud-ops-agent/subagents/