Cloud Loggingの運用上のTips集

記事タイトルとURLをコピーする

G-gen の藤岡です。当記事では、Google Cloud (旧称 GCP) の Cloud Logging の Tips を紹介します。

Cloud Logging とは

Cloud Logging (旧称 Stackdriver Logging) は Google Cloud 上のシステム等が生成したログを収集、保管、管理するサービスです。
似ている名前のサービスで Cloud Audit Logs もありますが、これは監査ログを記録するサービスでログの出力先が Cloud Logging です。

Cloud Logging および Cloud Audit Logs については以下の記事で解説されているので、当記事と併せてお読みください。 blog.g-gen.co.jp blog.g-gen.co.jp

ログカテゴリと保存先

全体像

Cloud Logging には大きく分けてログルーターログストレージの 2 つのコンポーネントがあります。

全体像
ログエクスプローラで閲覧できるログは、ログストレージに保存されているログのみです。そのため、Cloud Storage や BigQuery 等へシンクされたログはログエクスプローラーで閲覧できません。

カテゴリ

Cloud Logging が扱うログカテゴリは 5 つあります。当記事では、弊社の解説記事と統一して以下の 4 つに分類します。

No. ログカテゴリ 公式ドキュメント表記 (英語) 説明
1 Google Cloud サービスが生成するログ Platform logs +
Component logs
様々な Google Cloud サービスが出力するログ
2 ユーザーが生成するログ User-written logs VM のエージェント経由や API 経由でユーザーが Cloud Logging に投入したログ
3 セキュリティログ Security logs 以下の 2 種類のログ
・Cloud Audit Logs のログ
・アクセスの透明性ログ (Google サポート等がユーザのコンテンツにアクセスした際に出るログ)
4 マルチクラウドとハイブリッド クラウドのログ Multi-cloud logs and Hybrid-cloud logs Microsoft Azure や Amazon Web Services (AWS) 等の他クラウドサービスやオンプレミスから取り込んだログ

このうち、セキュリティログのうちの 1 つである Cloud Audit Logs はさらに以下の 4 つに分類されます。

No. カテゴリ ログ名 説明
1 管理アクティビティ監査ログ activity リソースに対する更新系の API コールが記録される
2 データアクセス監査ログ data_access リソースに対する読取系の API コールやデータの作成・変更・読取の API コールが記録される (有効化するとログ量が大きくなる可能性があるため注意が必要)
3 システムイベント監査ログ system_event ユーザーではなく Google Cloud サービスによって行われたリソースの構成変更が記録される
4 ポリシー拒否監査ログ policy VPC Service Controls 機能で拒否された API コールが記録される

保存先

Cloud Logging のログはデフォルトで_Required または _Default というログバケットに保存されます。ログバケットは Cloud Storage のバケットとは別物です。

ログカテゴリと保存先

各ログバケットに保存されるログは、ログルーターの詳細から包含フィルタで確認できます。

ログルーター画面

_Required ログバケットへシンクされるログルーターの包含フィルタは以下の通りです。externalaudit から始まるログは Google Workspace のログです。

# 管理アクティビティ監査ログ (セキュリティログ)
LOG_ID("cloudaudit.googleapis.com/activity") OR
# システムイベント監査ログ (セキュリティログ)                   
LOG_ID("cloudaudit.googleapis.com/system_event") OR
# アクセスの透明性ログ (セキュリティログ)
LOG_ID("cloudaudit.googleapis.com/access_transparency") OR   

LOG_ID("externalaudit.googleapis.com/activity") OR
LOG_ID("externalaudit.googleapis.com/system_event") OR           
LOG_ID("externalaudit.googleapis.com/access_transparency")

_Default ログバケットへシンクされるログルーターの包含フィルタは以下の通りです。_Required ログバケットの包含フィルタに NOT が付いているため、記載されているログ ID が含まれないログは _Default ログバケットへシンクされます。

NOT LOG_ID("cloudaudit.googleapis.com/activity") AND
NOT LOG_ID("externalaudit.googleapis.com/activity") AND 
NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND 
NOT LOG_ID("externalaudit.googleapis.com/system_event") AND 
NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND 
NOT LOG_ID("externalaudit.googleapis.com/access_transparency")

つまり、セキュリティログと Google Workspace のログの一部以外は全て _Default のログバケットへシンクされます。ただし、_Default ログバケットへのシンクは設定変更ができるため、環境によっては上記の包含フィルタと異なる場合もあります。

保持期間

_Required ログバケットにシンクされたログは、400 日間保持されます。この保持期間は変更できません
_Default ログバケットにシンクされたログは、30 日間保持されます。この保持期間は変更できますが、変更した場合は後述のストレージ料金が発生します。

保持期間

料金

2 つの料金軸

Cloud Logging の料金は取り込み処理量 (公式ドキュメントでは「Logging ストレージ」と記載) とストレージ (公式ドキュメントでは「ロギングの保持」と記載) の 2 軸で計算されます。
公式ドキュメントには「Logging ストレージ」と記載されていますが、これは取り込み処理量に対する課金項目であり、保持容量に対するものではありません。

料金図

節約時のログ精査方法

Cloud Logging の料金を節約する方法の 1 つに除外フィルタで特定のログを除外することが挙げられます。
具体的にどのリソースタイプのログが多いかは、Cloud Monitoring の Metrics Explorer で確認できます。ログストレージの画面から遷移すると自動で指標が設定されるため、当記事ではその確認方法を紹介します。

  1. コンソールのログストレージ画面から対象のログバケットの [ このバケットの使用状況データを表示 ] を押下
    ログ確認方法①
  2. 指標に Log bucket monthly bytes ingested が設定された Metrics Explorer が開く
    ログ確認方法②

Log bucket monthly bytes ingested は 1800 秒ごとのサンプリングのため、ログの合計を 1440 倍 (30 日/月 計算) すると取り込まれているログ量がわかります。どのリソースタイプのログが多いか確認し、ログエクスプローラー等で詳細を確認します。

ただし、ログを除外することによって調査時や Google サポートへ問い合わせ時に必要な情報が不足する場合もあるため注意が必要です。

なお、Log bucket monthly bytes ingested の指標は 2024 年 1 月時点ではベータ版のため、サンプリング間隔等は変更になる場合があります。

ログエクスプローラー

Duet AI

Duet AI を使うことでログエクスプローラーのログを要約して表示できます。ただし 2024 年 1 月時点では、本機能は英語のみに対応しているため、言語設定を英語にする必要があります。

ログエクスプローラーで対象のログを開き、[ Explain this log entry ] を押下すると要約されたログが表示されます (初回実行時は Cloud AI Companion API を有効化する画面が表示されます)。

Duet AI

データアクセス監査ログ利用時

有効は継承される

データアクセス監査ログはデフォルトで BigQuery のみ有効になっています。それ以外のサービスは明示的に有効化する必要があります。
前述の通りデータアクセス監査ログを有効にすると大量のログが発生する場合があるため注意が必要です。

データアクセス監査ログは組織、フォルダ、プロジェクトレベルで有効化でき、上位階層の設定が継承され、上書きはできません。
例えば、組織で有効化している場合、配下のフォルダやプロジェクトでも有効になり、フォルダやプロジェクトで無効化はできません。

設定は継承される

そのため、プロジェクト作成者が明示的に有効化せずとも、上位階層の設定が引き継がれ、データアクセス監査ログがログエクスプローラーで閲覧できる場合もあります。

閲覧には追加権限が必要

ログエクスプローラーで _Required_Default ログバケット内のログを閲覧するには ログ閲覧者 (roles/logging.viewer) のロールが必要です。
しかしこのロールではデータアクセス監査ログの閲覧はできません。データアクセス監査ログも含めたログを閲覧するには プライベート ログ閲覧者 (roles/logging.privateLogViewer) のロールが必要です。

参考記事

以下の記事では、エンタープライズ企業でよくある制約下 (データの保存先や暗号化など) での Cloud Audit Logs の運用方法について詳細に記載していますので、ご参照ください。

blog.g-gen.co.jp

藤岡 里美 (記事一覧)

クラウドソリューション部

数年前までチキン売ったりドレスショップで働いてました!2022年9月 G-gen にジョイン。今期は「おっさんずラブ」がイチオシです :)

Google Cloud All Certifications Engineer / Google Cloud Partner Top Engineer 2024