arrow_back

BigQuery と Cloud Logging を利用した BigQuery の使用状況の分析

ログイン 参加
700 以上のラボとコースにアクセス

BigQuery と Cloud Logging を利用した BigQuery の使用状況の分析

ラボ 45分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP617

概要

BigQuery などのさまざまな Google Cloud サービスからログの中央リポジトリとして機能する Cloud Logging は、短期から中期のログストレージに最適です。多くの業界では、ログを長期間保存する必要があります。長期的な履歴分析や複雑な監査のためにログを保存する場合は、シンクを設定して特定のログを BigQuery にエクスポートできます。

このラボでは、Cloud Logging 内で BigQuery ログを表示し、シンクを設定してログを BigQuery にエクスポートし、SQL を使用してログを分析します。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. BigQuery を開く

BigQuery コンソールを開く

  1. Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。

[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。

  1. [完了] をクリックします。

BigQuery コンソールが開きます。

タスク 2. データセットを作成する

  1. [エクスプローラ] セクションで、「qwiklabs-gcp-」で始まるプロジェクトの横にあるその他アイコンをクリックします。

  2. [データセットを作成] をクリックします。

  3. [データセット ID] に「bq_logs」と入力します。

  4. [データセットを作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 データセットを作成する

タスク 3. クエリを実行する

まず、ログを生成する簡単なクエリを実行します。このログは、後で BigQuery へのログのエクスポートを設定を行う際に使用します。

  1. 次のクエリをコピーして、BigQuery クエリエディタに貼り付けます。
SELECT current_date
  1. [実行] をクリックします。

タスク 4. Cloud Logging からのログのエクスポートを設定する

  1. Cloud コンソールで、[ナビゲーション メニュー] > [すべてのプロダクトを表示] > [ロギング] > [ログ エクスプローラ] の順に選択します。
注: 保存されていない作業に関するプロンプトが表示されたら [終了] をクリックします。
  1. [すべてのリソース] で [BigQuery] を選択し、[適用] をクリックします。

  2. 次に、右上にある [クエリを実行] ボタンをクリックします。

クエリからいくつかのログエントリが表示されます。

「jobcompleted」という文字列を含むエントリを見つけます。

  1. 左側の矢印をクリックしてエントリを展開します。

次に、右側にある [ネストされたフィールドを開く] ボタンをクリックします。

これで、JSON のログエントリ全体が表示されます。下方向にスクロールして、各フィールドを確認します。

  1. 上方向にスクロールしてエントリのヘッダーに戻り、[類似エントリ] ボタンをクリックして [類似エントリを表示] を選択します。

これで、正しい用語での検索が設定されます。必要に応じて [クエリを表示] ボタンをクリックして、表示を切り替えてください。

シンクを作成する

必要なログが準備できたので、シンクを設定します。

  1. [その他の操作] プルダウンから [シンクの作成] をクリックします。

  1. 各フィールドを次のように指定します。
  • シンク名: 「JobComplete」と指定して [次へ] をクリックします。
  • シンクサービスの選択: BigQuery データセット
  • Select Bigquery dataset (Destination): bq_logs(前述の手順で設定したデータセット)
  • その他の項目はデフォルト設定のままにします。
  1. [シンクを作成] をクリックします。

BigQuery からの後続のログエントリがすべて bq_logs データセットのテーブルにエクスポートされるようになります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 シンクを作成する

タスク 5. サンプルクエリを実行する

新しいテーブルにログを追加するために、サンプルクエリを実行してみましょう。

  • Cloud Shell に移動して、以下に示す BigQuery の各コマンドを Cloud Shell に追加します。
bq query --location=us --use_legacy_sql=false --use_cache=false \ 'SELECT fullName, AVG(CL.numberOfYears) avgyears FROM `qwiklabs-resources.qlbqsamples.persons_living`, UNNEST(citiesLived) as CL GROUP BY fullname' bq query --location=us --use_legacy_sql=false --use_cache=false \ 'select month, avg(mean_temp) as avgtemp from `qwiklabs-resources.qlweather_geo.gsod` where station_number = 947680 and year = 2010 group by month order by month' bq query --location=us --use_legacy_sql=false --use_cache=false \ 'select CONCAT(departure_airport, "-", arrival_airport) as route, count(*) as numberflights from `bigquery-samples.airline_ontime_data.airline_id_codes` ac, `qwiklabs-resources.qlairline_ontime_data.flights` fl where ac.code = fl.airline_code and regexp_contains(ac.airline , r"Alaska") group by 1 order by 2 desc LIMIT 10'

各クエリの結果が返されます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 サンプルクエリを実行する

タスク 6. BigQuery でログを表示する

  1. BigQuery に戻ります(ナビゲーション メニュー > [BigQuery])。

  2. 名前が「qwiklabs-gcp-」で始まるリソースを展開し、データセット「bq_logs」を展開します。

「cloudaudit_googleapis_com_data_access」というテーブルがあります(名前は異なる可能性があります)。

注: テーブルを表示するために、サンプルクエリを再度実行しなければならない場合があります。
  1. テーブル名をクリックし、テーブルのスキーマをチェックして、大量のフィールドがあることを確認します。

[プレビュー] をクリックしたときに、最近実行したクエリのログが表示されないことがあります。ログはテーブルにストリームされており、新しいデータに対してクエリを実行できますが、[プレビュー] にしばらくの間表示されないことがあります。

テーブルをより使いやすくするには、ビューを作成します。ビューには一部のフィールドが抽出され、クエリ時間の指標の計算も行われます。

  1. [クエリを新規作成] をクリックします。BigQuery のクエリエディタで、プロジェクト名を に置き換えてから以下の SQL を実行します(プロジェクト ID は、ラボページの左側の [ラボの詳細] パネルから簡単にコピーできます)。
CREATE OR REPLACE VIEW bq_logs.v_querylogs AS SELECT resource.labels.project_id, protopayload_auditlog.authenticationInfo.principalEmail, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.query, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.statementType, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatus.error.message, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.startTime, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.endTime, TIMESTAMP_DIFF(protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.endTime, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.startTime, MILLISECOND)/1000 AS run_seconds, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalProcessedBytes, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalSlotMs, ARRAY(SELECT as STRUCT datasetid, tableId FROM UNNEST(protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.referencedTables)) as tables_ref, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalTablesProcessed, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.queryOutputRowCount, severity FROM `<YOUR-PROJECT-ID>.bq_logs.cloudaudit_googleapis_com_data_access_*` ORDER BY startTime

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery でログを表示する

  1. ビューに対してクエリを実行します。新しいクエリを作成して、以下のコマンドを実行します。
SELECT * FROM bq_logs.v_querylogs
  1. 実行したクエリの結果を、スクロールして確認します。

お疲れさまでした

BigQuery ログを Cloud Logging から BigQuery テーブルに正常にエクスポートし、SQL で分析しました。

次のステップと詳細情報

  • Cloud Logging のドキュメントをお読みください。
  • BigQuery のドキュメントをお読みください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2024 年 5 月 31 日

ラボの最終テスト日: 2024 年 5 月 31 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

Please sign in to access this content.

close

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。