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 リクエストの平均レイテンシを計算するために、ログの集計オペレーションを行う場合には、[ログ分析] インターフェースを使用します。このインターフェースでは、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 トピック: Splunk や Datadog などのサードパーティ製品との統合が可能になります。ログエントリは 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 形式の構造化されたテキストデータのいずれかとして提供されます。
  • ログが属するログの名前。ログの名前には、ログエントリが属するリソースのフルパスと、その後に ID が含まれます。ログ名の例を次に示します。

    • 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 では、ログのコピー、ログスコープまたは分析ビューの作成、ログ エクスプローラまたはログ分析のページから発行されたクエリには課金されません。

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