ログのクエリと表示の概要

このドキュメントでは、Google Cloud コンソールを使用してログエントリをクエリ、表示、分析する方法について説明します。ログ エクスプローラとログ分析の 2 つのインターフェースがあります。両方のインターフェースでログのクエリ、表示、分析を行うことができます。ただし、クエリ言語は異なり、機能も異なります。 ログデータのトラブルシューティングと探索には、ログ エクスプローラを使用することをおすすめします。分析情報と傾向を生成するには、ログ分析を使用することをおすすめします。 Logging API コマンドを実行して、ログにクエリを実行し、クエリを保存できます。Google Cloud CLI を使用してログをクエリすることもできます。

ログ エクスプローラ

ログ エクスプローラは、サービスとアプリケーションのパフォーマンスのトラブルシューティングと分析に役立つように設計されています。たとえば、ヒストグラムにはエラー率が表示されます。エラーが急増した、または興味深いものが見つかった場合は、対応するログエントリを見つけて表示できます。ログエントリがエラーグループに関連付けられている場合、ログエントリには、エラーグループの詳細情報にアクセスできるオプションのメニューがアノテーションされます。

Cloud Logging API、Google Cloud CLI、ログ エクスプローラでは、同じクエリ言語がサポートされています。 ログ エクスプローラを使用する場合、クエリの作成を簡素化するには、メニューを使用する、テキストを入力する、また場合によっては、個別のログエントリのディスプレイに含まれるオプションを使用してクエリを作成します。

ログ エクスプローラでは、集約オペレーション(特定のパターンを含むログエントリの数をカウントするなど)がサポートされていません。集約オペレーションを実行するには、ログバケットで分析を有効にしてから、ログ分析を使用します。

ログ エクスプローラでのログの検索と表示の詳細については、ログ エクスプローラを使用してログを表示するをご覧ください。

ログ分析

ログ分析を使用すると、ログデータを分析するクエリを実行して、クエリ結果を表示したりクエリ結果をグラフ化できます。グラフを使用すると、ログのパターンや傾向を時系列で識別できます。次のスクリーンショットは、ログ分析のグラフ作成機能を示しています。

Log Analytics のユーザー インターフェース。

たとえば、問題のトラブルシューティングをしており、ある程度の期間にわたり特定の URL に対して発行された HTTP リクエストの平均レイテンシを把握したいとします。ログ分析を使用するようにログバケットをアップグレードすると、SQL クエリを使用してログバケットに保存されたログをクエリできます。これらの SQL クエリには、パイプ構文を含めることもできます。ログをグループ化して集計すると、ログデータの分析情報が得られるため、トラブルシューティングに要する時間を短縮する効果があります。

Log Analytics では、ログビューをクエリできます。ログビューには、LogEntry データ構造に対応する固定スキーマがあります。

BigQuery を使用してログビューをクエリすることもできます。たとえば、BigQuery を使用してログ内の URL を既知の悪意のある URL の公開データセットと比較するとします。BigQuery にログデータを表示するには、ログ分析を使用するようにバケットをアップグレードし、リンクされたデータセットを作成します。

問題のトラブルシューティングとこれらのバケット内の個々のログエントリの表示は、ログ エクスプローラを使用して引き続き行えます。

制限事項

  • ログ分析を使用するように既存のログバケットをアップグレードするには、次の制限が適用されます。

    • ログバケットは、_Required バケットでない限りロック解除されます。
    • バケットの更新が保留中でないこと。
  • Log Analytics を使用するようにアップグレードされたログバケットで、Log Analytics のサポートを削除することはできません。

  • アップグレードの完了後に書き込まれたログエントリのみを分析に使用できます。

  • ログバケットにフィールド レベルのアクセス制御が構成されている場合、[ログ分析] ページを使用してログビューをクエリすることはできません。ただし、[ログ エクスプローラ] ページからクエリを実行したり、リンクされた BigQuery データセットに対してクエリを実行したりすることはできます。BigQuery ではフィールド レベルのアクセス制御は考慮されないため、リンクされたデータセットに対してクエリを実行すると、ログエントリ内のすべてのフィールドに対してクエリを実行できます。

  • 異なる Cloud KMS 鍵で構成された複数のログバケットをクエリする場合、次の制約が満たされない限り、クエリは失敗します。

    • ログバケットが同じロケーションにある。
    • ログバケットの親リソースであるフォルダまたは組織がデフォルトの鍵で構成されている
    • デフォルトの鍵はログバケットと同じ場所にあります。

    上記の制約を満たすと、親の Cloud KMS 鍵によって、Log Analytics クエリによって生成された一時データが暗号化されます。

  • 重複するログエントリは、クエリの実行前に削除されません。これは、ログ エクスプローラを使用してログエントリをクエリする場合とは異なります。ログ エクスプローラでは、ログ名、タイムスタンプ、挿入 ID フィールドを比較して重複するエントリを削除します。詳細については、トラブルシューティング: ログ分析の結果に重複するログエントリがあるをご覧ください。

料金

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

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

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

ログ分析を使用するようにバケットをアップグレードしてから、リンクされたデータセットを作成すると、BigQuery の取り込みやストレージの費用は発生しません。 ログバケットのリンクされたデータセットを作成する場合、ログデータは BigQuery に取り込まれません。代わりに、リンクされたデータセットを介してログバケットに保存されているログデータへの読み取りアクセスを取得します。

BigQuery とリンクされているデータセット(BigQuery Studio ページ、BigQuery API、BigQuery コマンドライン ツールの使用など)で SQL クエリを実行すると、BigQuery 分析料金が適用されます。

ブログ

ログ分析の詳細については、次のブログ投稿をご覧ください。

次のステップ