🍇

Log AnalyticsによるCloud Loggingのログ分析

2024/02/27に公開

はじめに

Log Analyticsは、BigQueryの機能を利用してCloud Loggingのログを分析・可視化する機能です。
Log Analyticsを利用して、収集したログを高度な検索とフィルタリング機能でリアルタイムに分析し、ダッシュボードやグラフにして可視化することができます。

使用料金

Log Analyticsは、Cloud Logging の標準料金に含まれており、追加料金はかかりません。
ただし、BigQueryのデータセットのリンクを設定して、BigQuery側からクエリを実行した場合には BigQueryの使用料金が発生します。
参考:Cloud Loggingのご紹介 - BigQueryを活用したLog Analytics(公式)

Log Analyticsの有効化

Log Analyticsを使用するには、ログストレージ画面で対象のログバケットの「UPGRADE」をクリックするか、ログパケットを編集して「Upgrade to use Log Analytics」をオンにすることでLog Analyticsを有効化します。

Log Analyticsでログ分析

クエリを実行する

ロギングの画面からログ分析を選択します。
デフォルトでサンプルのクエリが表示されていますので、任意で編集してクエリを実行します。
クエリで指定可能な項目はビューに表示されているフィールド名を参考にしてください。

 
クエリの実行結果は表形式とカスタマイズ可能なグラフで表示できます。

クエリで日別に集計する

ロードバランサーのアクセスログをクエリで日別・プロトコル別に集計する実行例です。
グラフのディメンション (y軸)にday、メジャー(X軸)にsum of CNT、内訳にprotocolを指定しています。

SELECT
  FORMAT_DATE('%Y-%m-%d',DATE(timestamp,"Asia/Tokyo")) AS day,
  REGEXP_EXTRACT(http_request.request_url, '^(https?)://[^/]+/') AS protocol,
  COUNT(1) AS CNT
FROM
  `<project_id>.global._Default._Default`
WHERE
  resource.type = 'http_load_balancer'
GROUP BY day, protocol
ORDER BY day, protocol


グラフで日別に集計する

ロードバランサーのアクセスログをクエリで抽出後、グラフで日別・ディレクトリ別に集計する実行例です。
グラフのディメンション (y軸)にdirectory、メジャー(X軸)にCount rows、内訳にdayを指定しています。

SELECT
  FORMAT_DATE('%Y-%m-%d',DATE(timestamp,"Asia/Tokyo")) AS day,
  timestamp,
  severity,
  http_request.status,
  REGEXP_EXTRACT(http_request.request_url, '^(https?)://[^/]+/') AS protocol,
  REGEXP_EXTRACT(http_request.request_url, '^https?://([^/]+)/') AS domain,
  REGEXP_EXTRACT(http_request.request_url, '^https?://[^/]+/([^/]+)/') AS directory
FROM
  `<project_id>.global._Default._Default`
WHERE
  resource.type = 'http_load_balancer'
ORDER BY timestamp


まとめ

Log Analyticsはログの収集から分析、可視化までを一元的に行えるツールです。
クエリとグラフを組み合わせることで、簡単にログを可視化することが出来ました。

レスキューナウテックブログ

Discussion