Cloud Logging の概要

このドキュメントでは、Cloud Logging の概要について説明します。Cloud Logging は、ストレージ、検索、分析、モニタリングをサポートするリアルタイムのログ管理システムです。 Cloud Logging は、Google Cloud リソースからログデータを自動的に収集します。アプリケーション、オンプレミス リソース、他のクラウド プロバイダのリソースからログデータを Cloud Logging に送信できます。アラート ポリシーを、特定の種類のイベントがログデータで報告された場合に Cloud Monitoring から通知されるように、構成することもできます。規制上の理由やセキュリティ上の理由から、ログデータの保存場所を指定できます。

アプリケーションとサードパーティ ソフトウェアからログを収集する

作成したアプリケーションからログを収集するには、クライアント ライブラリを使用してアプリケーションを計測します。ただし、アプリケーションを常にインストルメント化する必要はありません。たとえば、一部の構成では、Ops エージェントを使用して、stdout または stderr に書き込まれたログを Google Cloud プロジェクトに送信できます。

また、Ops エージェントをインストールして、そのアプリケーションから Google Cloud プロジェクトにログを書き込むように構成することで、nginx などのサードパーティ アプリケーションからログデータを収集することもできます。

要件に最適な方法を判断するのに役立つ情報については、Logging エージェントとクライアント ライブラリのどちらを使用するかをご覧ください。

ログのトラブルシューティングと分析

ログデータを表示して分析するには、Google Cloud コンソールのログ エクスプローラまたはログ分析ページを使用します。両方のインターフェースでログのクエリ、表示、分析を行うことができます。ただし、クエリ言語は異なり、機能も異なります。

サービスとアプリケーションのパフォーマンスのトラブルシューティングと分析を行う場合は、ログ エクスプローラを使用することをおすすめします。このインターフェースは、個々のログエントリを表示し、関連するログエントリを検索できるように設計されています。たとえば、ログエントリがエラーグループの一部である場合、そのエントリには、エラーの詳細情報にアクセスするためのオプション メニューがアノテーションされます。

たとえば、一定期間に特定の URL に発行された HTTP リクエストの平均レイテンシを計算するために、ログの集計オペレーションを行う場合には、Log Analytics インターフェースを使用します。このインターフェースでは、SQL を使用してログデータをクエリするため、SQL の機能を活用してログデータを理解できます。

ログデータをプログラムでクエリする場合は、Cloud Logging API または Google Cloud CLI を使用して Google Cloud プロジェクトからログデータをエクスポートできます。

詳細については、ログのクエリと表示の概要をご覧ください。

ログをモニタリングする

ログで特定の種類のイベントが発生したときに通知するように Cloud Logging を構成できます。これらの通知は、ログエントリに特定のパターンがある場合、またはログデータに傾向が検出された場合に送信できます。 Google Cloud サービスのエラー率を確認するには、事前構成済みの Cloud Logging ダッシュボードを表示します。

たとえば、重要なセキュリティ関連イベントなどの特定のメッセージが発生したときに通知を受け取るには、ログベースのアラート ポリシーを作成します。ログベースのアラート ポリシーは、特定のパターンのログをモニタリングします。そのパターンが見つかった場合、Monitoring は通知を送信し、インシデントを作成します。ログベースのアラート ポリシーは、次のような重要であるもののまれなイベントに役立ちます。

  • ユーザーがサービス アカウントのセキュリティ キーにアクセスするようなイベントが監査ログに表示されたとき。
  • アプリケーションがログにデプロイ メッセージを書き込み、デプロイの変更がログに記録されたとき。

または、傾向またはイベントの発生を時系列でモニタリングする場合。このような場合は、ログベースの指標を作成できます。 ログベースの指標により、いずれかの条件に一致するログエントリの数をカウントすることや、レスポンス時間などの情報を抽出してヒストグラムに整理することができます。たとえば、レスポンス時間が許容できないレベルまで増加するなど、パフォーマンスが変化したときに通知されるアラート ポリシーを構成することもできます。ログベースの指標は、次のいずれかを行う場合に適しています。

  • ログ内で警告やエラーなどのメッセージの発生回数をカウントし、しきい値を超えると通知を受け取る。
  • ログのレイテンシ値などのデータの傾向を監視し、許容できない値に変化した場合に通知を受け取る。
  • グラフを作成して、ログから抽出した数値データを表示する。

詳細については、ログのモニタリングをご覧ください。

ログストレージ

ログの保存場所を構成する必要はありません。デフォルトでは、Google Cloud プロジェクトは受信したすべてのログを Cloud Logging ログバケットに自動的に保存します。たとえば、Google Cloud プロジェクトに Compute Engine インスタンスが含まれている場合、Compute Engine によって生成されるすべてのログは自動的に保存されます。ただし、必要に応じて、どのログを保存するか、どれを破棄するか、どこにログを保存するかなど、ログ ストレージに関するさまざまな側面を構成できます。

ログエントリを次の宛先にルーティングまたは転送できます。宛先は、同じ Google Cloud プロジェクトまたは別の Google Cloud プロジェクト内にすることができます。

  • Cloud Logging バケット: Cloud Logging のストレージが提供されます。ログバケットには、複数の Google Cloud プロジェクトで受信するログエントリを保存できます。ログバケットは、ログエントリの元のプロジェクトに配置することも、別のプロジェクトに配置することもできます。ログバケットに保存されているログの表示については、ログのクエリと表示の概要Cloud Logging バケットにルーティングされたログの表示をご覧ください。

    Cloud Logging データを他のデータと結合するには、ログ分析を使用するようにログバケットをアップグレードし、リンクされたデータセットを作成します。これは、[BigQuery Studio] ページと [Looker Studio] ページでクエリできる読み取り専用のデータセットです。

  • BigQuery データセット: 書き込み可能な BigQuery データセットにログエントリのストレージを提供します。BigQuery データセットは、ログエントリの元のプロジェクトに配置することも、別のプロジェクトに配置することもできます。保存されたログエントリに対して、ビッグデータ分析機能を使用できます。BigQuery にルーティングされたログエントリの表示については、BigQuery にルーティングされたログを表示するをご覧ください。

  • Cloud Storage バケット: Cloud Storage にログエントリのストレージを提供します。 Cloud Storage バケットは、ログエントリの元のプロジェクトに配置することも、別のプロジェクトに配置することもできます。ログエントリは、JSON ファイルとして保存されます。 Cloud Storage にルーティングされたログエントリの表示については、Cloud Storage に転送されたログを表示するをご覧ください。
  • Pub/Sub トピック: サードパーティ統合をサポートします。 ログエントリは JSON 形式にフォーマットされ、Pub/Sub トピックにルーティングされます。トピックは、ログエントリの元のプロジェクトに配置することも、別のプロジェクトに配置することもできます。Pub/Sub に転送されたログエントリの表示については、Pub/Sub に転送されたログを表示するをご覧ください。

  • Google Cloud プロジェクト: ログエントリを別の Google Cloud プロジェクトにルーティングします。この構成では、宛先プロジェクトのシンクによってログエントリが処理されます。

データのリージョンのサポートなど、詳細については、ルーティングとストレージの概要をご覧ください。

ログのカテゴリ

ログのカテゴリは、利用可能なロギング情報の説明をサポートすることを目的としています。あるカテゴリは、別のカテゴリの一部を含む場合があります。

  • プラットフォーム ログは、Google Cloud サービスによって書き込まれるログです。これらのログは、問題のデバッグとトラブルシューティングに役立ち、使用中の Google Cloud サービスについて理解を深める助けにもなります。

  • コンポーネント ログはプラットフォーム ログに似ていますが、システムで実行される Google 提供のソフトウェア コンポーネントによって生成されます。たとえば、GKE は、ユーザーが自分の VM または独自のデータセンターで実行できるソフトウェア コンポーネントを提供します。ログは、ユーザーの GKE インスタンスから生成され、ユーザーの Google Cloud プロジェクトに送信されます。GKE では、ログまたはそのメタデータを使用してユーザー サポートが提供されます。

  • 監査ログを使用すれば、「誰が、どこで、いつ、何をしたのか」という問いに答えることができます。

    • Cloud Audit Logs は、Google Cloud リソース内での管理アクティビティとアクセスに関する情報を提供します。 監査ログを有効にすると、セキュリティ、監査、コンプライアンス エンティティが Google Cloud のデータとシステムをモニタリングして、脆弱性や外部データの不正使用の可能性を確認できます。 Google Cloud でサポートされているサービスの一覧については、監査ログ付きの Google サービスをご覧ください。
    • アクセスの透明性は、Google のスタッフがお客様の Google Cloud のコンテンツにアクセスしたときに行ったアクションのログを提供します。アクセスの透明性ログは、組織の法的要件と規制上の要件への準拠状況を追跡するのに役立ちます。Google Cloud でサポートされているサービスの一覧については、アクセスの透明性ログ付きの Google サービスをご覧ください。
  • ユーザー作成のログは、カスタム アプリケーションやサービスによって書き込まれたログです。 通常、これらのログは、次のいずれかの方法を使用して Cloud Logging に書き込まれます。

ログのデータモデル

Cloud Logging がログデータの整理に使用するデータモデルによって、そのデータに対してクエリを実行できるディメンションが決まります。たとえば、ログは個別エントリの名前付きコレクションであるため、ログの名前でデータをクエリできます。同様に、各ログは LogEntry オブジェクトとしてフォーマットされるログエントリで構成されるため、LogEntry の値が一部の条件に一致するログエントリのみを取得するクエリを作成できます。たとえば、severity フィールドの値が ERROR のログエントリのみを表示できます。

各ログエントリは、ステータスを記録するか、VM インスタンスの作成などの特定のイベントを記述します。最小限で次の要素で構成されます。

  • イベントが発生した日時、または Cloud Logging がそれを受信した日時を示すタイムスタンプ。
  • ログエントリのソースに関する情報。このソースはモニタリング対象リソースと呼ばれます。 モニタリング対象リソースの例としては、個々の Compute Engine VM インスタンスや Google Kubernetes Engine コンテナが挙げられます。 モニタリング対象リソースタイプの詳細については、モニタリング対象リソースとサービスをご覧ください。
  • 構造化されていないテキストデータ、または JSON 形式の構造化されたテキストデータのいずれかとして提供されるペイロードで、メッセージとも呼ばれるもの。
  • ログが属するログの名前。 ログの名前には、ログエントリが属するリソースのフルパスと、その後に識別子が含まれます。ログ名の例を次に示します。

    • projects/my-project/logs/stderr
    • projects/my-project/logs/stdout
    • projects/my-project/compute.googleapis.com/activity

アクセス制御

Identity and Access Management のロールは、プリンシパルがログにアクセスする機能を制御します。 プリンシパルに事前定義ロールを付与することも、カスタムロールを作成することもできます。必要な権限の詳細については、アクセス制御をご覧ください。

保持

ログエントリは、一定期間ログバケットに保存され、その後削除されます。詳細については、転送とストレージの概要: 保持をご覧ください。

料金

Cloud Logging では、サポートされている宛先へのログの転送で料金を請求されることはありませんが、宛先での料金が発生する場合があります。_Required ログバケットを除き、Cloud Logging では、ログバケットへのログのストリーミングと、ログバケットのデフォルト保持期間よりも長いストレージの料金が請求されます。

Cloud Logging では、ログのコピー、ログスコープの定義、またはログ エクスプローラまたは [ログ分析] ページを介して発行されたクエリには課金されません。

詳細については、次のドキュメントをご覧ください。