6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloud LoggingのログをLooker Studioで可視化する全手順!BigQuery連携で分析を効率化

Last updated at Posted at 2025-12-21

Google Cloudを利用していると、アプリケーションの動作確認やエラー分析のために「ログの可視化」が必要になる場面が多々あります。

「Cloud Loggingのコンソール画面だけでは分析がしにくい...」
「過去の傾向をグラフ化してダッシュボードで共有したい」

そんな悩みをお持ちの方に向けて、今回はCloud LoggingのログをBigQuery経由でLooker Studioへ連携し、可視化するまでの手順を完全ガイドします。


1. 今回の可視化フローとBigQueryを選定した理由

今回は、以下のフローでログを可視化します。

ローカル (functions-framework) → Cloud Logging → BigQuery → Looker Studio

なぜ途中にBigQueryを挟むのでしょうか?その理由は、Cloud Loggingに備わっている**「ログシンク(Log Sink)」**という機能を利用し、同期的にデータベースへ格納するためです。

他にもPub/Subを宛先にするなどの方法はありますが、BigQueryを採用することで以下のようなメリットが得られます。

  • データの長期保存: Cloud Loggingのデフォルトの保存期間を過ぎたログも蓄積できる。
  • 高度なSQL分析: 複雑な条件での抽出や集計が容易。
  • 将来的な拡張性: 他のデータソースと結合したり、最近リリースされたのMCP(Model Context Protocol)サーバーを活用したAI連携など、データ活用の幅が広がります。

2. 利用するサービスの概要

手順に入る前に、各サービスの役割を整理しておきましょう。

サービス名 概要・役割
Cloud Logging Google Cloud上のログを一元的に収集・保存・分析する管理サービス。
BigQuery 膨大なデータを高速かつ低コストで分析できるフルマネージドなデータウェアハウス(DWH)。
Looker Studio 複数のデータソースを統合し、ドラッグ&ドロップで視覚的なレポートを作成できる無料のBIツール。

3. 手順①:Cloud Loggingにログを出力する

まずは、可視化の元となるログをローカル環境(functions-framework)から出力させます。Pythonを使用した実装例は以下の通りです。

import logging
import google.cloud.logging
import functions_framework

@functions_framework.http
def logging_sink(request):
    # Google Cloud Logging クライアントのセットアップ
    log_client = google.cloud.logging.Client()
    log_client.setup_logging()

    logger = logging.getLogger(__name__)
    logger.setLevel(logging.DEBUG)

    # 可視化したいデータ(ペイロード)
    payload = {
        'value1': 'testです1',
        'value2': 'testです2',
        'value3': 'testです3',
    }
    
    logger.info(payload)
    return "OK", 200

出力後、ログビューアで正しく表示されているか確認しましょう。

ログ出力の確認


4. 手順②:ログシンクを作成する

次に、Cloud LoggingからBigQueryへログを自動転送する設定を行います。

  1. ログルーターを選択: 左のサイドバーから「ログルーター」を選択します。
    ログルーター
  2. シンクの作成: 「シンクを作成」を選択し、分かりやすいシンク名を入力します。
  3. 宛先の設定: プルダウンから「BigQuery データセット」を選びます。初めての場合は「新しいBigQueryデータセットを作成する」からプロジェクトIDやデータセットIDを設定してください。
    データセット作成
  4. ログのフィルタリング: BigQueryに送るログを絞り込みます。
    • 例:sourceLocation.function = "logging_sink" のように、特定の関数名などでフィルタリングを行います。
    • ※ここを適切に設定しないと、一致する全ログが送信されコストがかさんでしまうため注意しましょう。
      フィルタ設定

5. 手順③:BigQueryでビュー(View)を作成する

シンクされた直後のデータは全ての値が格納されており、Looker Studioでそのまま扱うには少し不便です。そこで、SQLクエリを使って「ビュー」を作成し、必要な項目jsonPayloadなどのみに整理します。

  1. 対象のデータセットで「クエリ」を選択し、以下のコードを自身の環境に合わせて書き換えて実行します。
CREATE OR REPLACE VIEW `<your-project-id>.<your-dataset-id>.<your-view-name>` AS
SELECT
  timestamp,
  jsonPayload
FROM
  `<your-project-id>.<your-dataset-id>.<your-table-name>`
  1. 作成されたビューに移動し、「次で開く」から「Looker Studio」を選択します。
    Looker Studio連携

6. 手順④:Looker Studioでレポート作成

Looker Studioが開いたら、あとは「ディメンションを追加」して表やグラフをカスタマイズするだけです!

Looker Studioカスタマイズ

これで、自分だけのオリジナルログ・ダッシュボードの完成です。


⚠️ 運用の注意点:スキーマ変更について

レコードの更新はほぼ同期されますが、注意が必要なのが「新しいキー(カラム)の追加」です。

例えば、後からアプリ側で value4 という項目をログに追加した場合、Looker Studio側で自動的に認識されるわけではありません。

  1. アプリ側でログ出力内容を変更
  2. BigQuery側でビューを再作成・置換(REPLACE VIEW)
  3. Looker Studio側でフィールドの更新

という手順が必要になります。設計の段階で、どのキーをカラムとして活用するかをしっかり決めておくのがスムーズな運用のコツです。


最後まで読んでいただきありがとうございました。
Cloud Logging × BigQuery × Looker Studio の組み合わせは、トラブルシューティングだけでなく、サービスの利用傾向を分析するのにも非常に強力な武器になります。ぜひ試してみてください!

参考URL:

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?