Log AnalyticsによるCloud Loggingのログ分析
はじめに
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