ログ分析でログをクエリして表示する

このドキュメントでは、ログ分析を使用するようにアップグレードされたログバケットに保存されているログに対してクエリを実行し、表示する方法について説明します。こうしたバケットにあるログは、SQL を使用してクエリを実行できます。これにより、ログのフィルタと集計を行えます。Cloud Logging のログ分析機能については、ログ分析の概要をご覧ください。

ログ分析を使用するようにログバケットをアップグレードする場合、ログ エクスプローラへのアクセスを制限しません。問題のトラブルシューティングとこれらのバケット内の個々のログエントリの表示は、ログ エクスプローラを使用して引き続き行えます。

ログ分析を使用するようにログバケットをアップグレードする方法については、次のドキュメントをご覧ください。

始める前に

  1. ログ分析を使用して、リンクされたデータセットの作成などのアクティビティを実行するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。

    ロールの付与の詳細については、アクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

  2. クエリを実行するログビューで、[ログストレージ] ページに移動し、これらのログビューを格納するログバケットが、ログ分析を使用するようにアップグレードされていることを確認します。必要に応じて、ログバケットをアップグレードします。

    Google Cloud コンソールで、[ログストレージ] ページに移動します。

    [ログストレージ] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。

  3. 省略可: BigQuery データセットを使用してログデータをクエリする場合は、リンクされた BigQuery データセットを作成します。

ログビューをクエリする

問題をトラブルシューティングする場合は、パターンに一致するフィールドを含むログエントリをカウントするか、HTTP リクエストの平均レイテンシを計算します。これらのアクションは、ログビューで SQL クエリを実行することで行えます。

ビューに SQL クエリを発行するには、次の操作を行います。

  1. Google Cloud コンソールで、[ログ分析] ページに移動します。

    [ログ分析] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。

  2. [ログビュー] リストで、ビューを見つけて、[クエリ] を選択します。[クエリ] ペインには、クエリ対象のテーブル名を含むデフォルトのクエリが入力されます。

    [Query] ペインでクエリを入力することや、表示されているクエリを編集することもできます。

    クエリの期間を設定するには、期間セレクタを使用するか、timestamp フィールドを指定する WHERE 句を追加します。期間セレクタを使用して期間を指定することをおすすめします。

    クエリでタイムスタンプを指定すると、そのタイムスタンプにより期間セレクタで選択された期間がオーバーライドされ、期間セレクタが無効になります。期間セレクタを使用するには、クエリの WHERE 句からタイムスタンプ式を削除します。

  3. ツールバーで、[クエリを実行] をクリックします。

    クエリが実行され、クエリの結果が [結果] タブに表示されます。

    ツールバー オプションを使用して、クエリをフォーマットし、クエリを消去して、BigQuery SQL リファレンス ドキュメントを開くことができます。

ビューのスキーマを表示する

ログビューのスキーマは、その構造と各フィールドのデータ型を定義します。この情報でクエリの構成方法が決まるため重要です。たとえば、HTTP リクエストの平均レイテンシを計算するとします。レイテンシ フィールドにアクセスする方法と、整数(100 など)として保存されるか、文字列("100" など)として保存されるかを認識しておく必要があります。レイテンシ データが文字列として保存される場合、クエリでは平均を計算する前に値を数値に型変換する必要があります。

列のデータ型が JSON の場合、スキーマにはその列で使用可能なフィールドは表示されません。たとえば、ログエントリには、json_payload という名前のフィールドを含めることができます。ログ分析を使用するようにログバケットをアップグレードすると、そのフィールドは JSON データ型の列にマップされます。スキーマには、列の子フィールドは示されません。つまり、スキーマを使用して json_payload.url が有効な参照かどうかを判断することはできません。

ビューのスキーマを特定するには、次の操作を行います。

  1. Google Cloud コンソールで、[ログ分析] ページに移動します。

    [ログ分析] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。

  2. [ログビュー] リストでビューを見つけて、ビューの名前を選択します。

    テーブルのスキーマが表示されます。[フィルタ] フィールドを使用して、特定のフィールドを見つけることができます。スキーマを変更することはできません。

クエリを保存する

実行するすべてのクエリは自動的に 30 日間保存され、[ログ分析] ページの [最近] タブを選択することでアクセスできます。[最近] タブに表示されるクエリを検索、表示、実行、共有できます。

後で使用できるようにクエリを保存する場合は、有用な情報をクエリに追加するか、チームメイトがクエリを表示して実行できるようにしてから、クエリを保存します。保存したクエリは、名前、説明、公開設定ラベルで検索および並べ替えることができます。これらのクエリを編集、削除することもできます。保存したクエリは、削除するまで保持されます。

Google Cloud プロジェクトごとに 10,000 件のクエリを保存できます。

コンソール

クエリを保存する手順は次のとおりです。

  1. Google Cloud コンソールで、[ログ分析] ページに移動します。

    [ログ分析] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。

  2. [クエリ] ペインにクエリを入力します。

    [クエリ] ペインにクエリを入力するには、新しいクエリを入力するか、[最近] タブからクエリを選択するか、[保存済み] タブからクエリを選択します。

    [クエリ] ペインのクエリが有効になると、 [保存] が有効になります。

  3. [保存] をクリックし、[名前] フィールドと [説明] フィールドに入力します。 これらのフィールドに設定した値は、[保存済み] タブに表示されます。

  4. 省略可: Google Cloud プロジェクト ビューの [ログ分析] ページへのアクセス権を持つユーザーが保存したクエリを実行できるようにするには、[プロジェクトで共有] の切り替えを有効にします。

    デフォルトでは、この切り替えは無効になっており、表示が制限されています。

  5. [クエリを保存] をクリックします。

  6. 省略可: 表示可能な保存済みクエリを表示、並べ替え、実行するには、[保存済み] タブを選択します。

    保存したクエリは、名前、説明、公開設定ラベルで並べ替えおよびフィルタリングできます。クエリの内容でフィルタリングすることもできます。

[保存済み] タブのオプションを使用して、作成したクエリを編集および削除できます。

  • クエリを編集するには、 [その他のオプション] をクリックし、[編集] を選択します。 [名前] フィールドと [説明] フィールドの値は変更できます。ただし、クエリ自体は変更できません。

  • 保存済みクエリを削除するには、 [その他のオプション] をクリックし、[削除] を選択します。

API

Logging API を使用してクエリを保存するには、savedQueries.create メソッドを使用します。このメソッド、そのパラメータ、レスポンス データの詳細については、savedQueries.create のリファレンス ページをご覧ください。

savedQueries.create メソッドは、メソッドのリファレンス ページにある API Explorer ウィジェットを使用して実行できます。ログ分析のクエリでは、opsAnalyticsQuery フィールドを指定する必要があります。次の例は、SavedQuery のインスタンスを含むリクエスト本文の例を示しています。

{
  "parent": "projects/my-project/locations/global"
  "saved_query":
  {
     "ops_analytics_query":
     {
        "sql_query_text" :
           "SELECT
           timestamp, log_name, severity, json_payload, resource, labels
           FROM
           `TABLE`
           WHERE
           timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
           ORDER BY timestamp ASC
           LIMIT 100"
     }
     "visibility": "PRIVATE"
  }
}

クエリを共有する

コンソール

問題のトラブルシューティングを行う場合や、異常な結果が発生した場合、クエリとその結果をチームメイトと共有することをおすすめします。[ログ分析] ページでクエリ結果を表示するときに、URL をコピーできます。この URL を開くと、実行したクエリとその結果が表示されます。

クエリと結果をチームメンバーと共有する手順は、次のとおりです。

  1. Google Cloud コンソールで、[ログ分析] ページに移動します。

    [ログ分析] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。

  2. [クエリ] ペインにクエリを入力し、[クエリを実行] をクリックします。

    [クエリ] ペインにクエリを入力するには、新しいクエリを入力するか、[最近] タブからクエリを選択するか、[保存済み] タブからクエリを選択します。

  3. [リンクを共有] をクリックします。

  4. チームメートにリンクを送信します。

    同僚がリンクを開くと、[ログ分析] ページが開きます。このページには、実行したクエリとその結果が表示されます。

    URL を正常に開くには、Google Cloud プロジェクトのチームメートの Identity and Access Management ロールに、Logging ページの表示に必要な権限が含まれている必要があります。

API

Logging API を使用して共有クエリを作成するには、savedQueries.Create メソッドを使用し、visibility フィールドに SHARED の値を指定します。

最近のクエリまたは保存済みクエリの表示と実行

クエリを表示または再実行するには、[ログ分析] ページで [最近] タブを選択し、クエリを探します。

  • クエリを実行するには、[実行] をクリックします。
  • クエリを表示するには、 [その他のオプション] メニューのオプションを使用します。

保存済みクエリを表示、編集、実行するには、[ログ分析] ページの [保存済み] タブを選択し、クエリを探します。

  • クエリを実行するには、[実行] をクリックします。
  • クエリを編集、表示、削除するには、 [その他のオプション] メニューのオプションを使用します。

BigQuery を使用してログにクエリを実行する

ログ分析を使用するようにアップグレードされたログバケットがある場合は、リンクされた BigQuery データセットを作成して BigQuery のデータを表示することもできます。この構成では、BigQuery を使用して、リンクされたデータセットを通じてアクセスできるログデータを他のビジネスデータと結合できます。リンクされたデータセットを作成する方法については、ログバケットの閲覧権限を BigQuery に付与するをご覧ください。

リンクされたデータセットを削除するには、次の操作を行います。

  1. Google Cloud コンソールで、[ログ分析] ページに移動します。

    [ログ分析] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。

  2. [ログビュー] リストで、ビューを見つけて、[クエリ] を選択します。[Query] ペインには、デフォルトのクエリが入力されます。

    [Query] ペインでクエリを入力することや、表示されているクエリを編集することもできます。

  3. ツールバーで [BigQuery で実行] をクリックします。

    [BigQuery Studio] ページが開きます。クエリの FROM ステートメントは、BigQuery のテーブルパスの構文を使用して、リンクされたデータセットのビューへのパスを指定するように変更されます。

    表示されているクエリを編集することもできます。

  4. [クエリを実行] をクリックします。

次のステップ