GCP Ops エージェントのログファイルにローテーションを設定する

Ops エージェントのイメージ PC・サーバー

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/