Looker
このチュートリアルでは、Cloudflare Logs ↗をCloudflare Log Analytics for Looker ↗を使用して分析する方法を説明します。
Cloudflare Logsを以前に使用したことがない場合は、詳細についてはLogs documentationを参照してください。アカウントのログを有効にするには、Cloudflareのカスタマーアカウントチームにお問い合わせください。
このチュートリアルでは、Cloudflare Logpushを使用してログをGoogle Cloud Storage Bucket and Cloud Functionに送信し、その後Google Big Queryにインポートします。
CloudflareのログデータをLookerに送信する前に、次のことを確認してください。
- 既存のLookerアカウントを持っている
- Cloudflare Logsが有効なCloudflare Enterpriseアカウントを持っている
- LogpushまたはLogpullを設定している
- Lookerがサポートするデータベース ↗にデータをロードしている
Lookerはデータをクエリするためにデータベースに接続します。このチュートリアルでは、Google Big Queryを例として使用します。Google BigQueryをLookerに接続する方法 ↗を学んでください。
Cloudflareのログをデータベースにロードしたら、データベースをLookerに接続します ↗。
新しいLookMLプロジェクトを作成するには:
-
Lookerアカウントにログインします。
-
メニューバーでDevelopをクリックし、Development ModeがONに設定されていることを確認します。
-
次に、Developの下でManage LookML Projectsをクリックします。
-
LookML Projectsページの右上でNew LookML Projectをクリックします。
-
New Projectダイアログで、プロジェクト名を入力します。
-
Starting Pointで、*Clone Public Git Repository*を選択します。
-
公開Gitリポジトリのcloudflare_block URL
git://github.com/llooker/cloudflare_block.gitを入力します。 -
Create Projectをクリックします。Lookerはすべてのリポジトリファイルを新しいLookMLプロジェクトに取り込みます。
-
次に、プロジェクトを開きます。
-
Deploy from Remoteをクリックして、すべてのリモート変更をリポジトリのローカルバージョンに取り込みます。

LookMLファイル内の接続名を更新するには:
-
LookMLのcloudflare_lookerモデルファイルで、connection名を自分のものに置き換えます。例えば:
connection: "bigquery_lpr"。 -
テーブル名がデータベース接続名に更新する必要があるかどうかを確認します。explore、モデル名、ビューのファイル名を変更する場合は、他のファイル内のすべての言及を更新することを確認してください。そうしないと、エラーが発生する可能性があります。
メインメニューでBrowseをクリックし、LookML Dashboardsを選択します。GitHubから取得したすべてのCloudflareダッシュボードが表示されるはずです。
Cloudflareログを分析するための5つのダッシュボードがあります。また、ダッシュボード内でフィルターを使用して、日付と時間、デバイスタイプ、国、ユーザーエージェント、クライアントIP、ホスト名などで分析を絞り込むこともできます。
これは、Cloudflareログからの最も重要なメトリックの簡単な概要で、リクエストの総数、国別のトップ訪問者、クライアントIP、ユーザーエージェント、トラフィックタイプ、脅威の総数、帯域幅の使用量が含まれます。

このダッシュボードは、Webアプリケーションファイアウォール(WAF)とIPファイアウォールを通じた脅威の特定と軽減に関する洞察を提供します。メトリックには、停止された脅威の総数、脅威トラフィックのソース、ブロックされたIP、ユーザーエージェント、トップ脅威リクエスト、WAFイベント(SQLインジェクション、XSSなど)、レート制限が含まれます。このデータを使用して、明らかな脅威をターゲットにし、誤検知を防ぐためにファイアウォールを微調整します。

このダッシュボードは、遅いページやキャッシュの誤設定などの問題を特定し、対処するのに役立ちます。メトリックには、総帯域幅とキャッシュされた帯域幅、キャッシュ比率、トップの未キャッシュリクエスト、静的コンテンツと動的コンテンツ、最も遅いURIなどが含まれます。

このダッシュボードは、ウェブサイトやアプリケーションの可用性に関する洞察を提供します。メトリックには、オリジン応答エラー比率、オリジン応答ステータスの推移、3xx/4xx/5xxエラーの割合の推移などが含まれます。

このダッシュボードは、悪質なボットを確実に検出し、軽減することで、資格情報の詰め込み、スパム登録、コンテンツのスクレイピング、クリック詐欺、在庫の蓄積、その他の悪意のある活動を防ぐことができます。これらの洞察を使用して、Cloudflareを調整し、ウェブサイト、アプリケーション、APIエンドポイント全体でボットの過剰使用と悪用を防ぎます。

すべてのダッシュボードには、全体に適用できるフィルターのセットがあります。以下の例のように、フィルターはダッシュボード全体に適用されます。

デフォルトの時間間隔は24時間に設定されています。正確な計算のために、デフォルトではフィルターはWorkerサブリクエスト(WorkerSubrequest = false)とパージリクエスト(ClientRequestMethodがPURGEでない)を除外します。
利用可能なフィルター:
-
日付 (EdgeStartTimestamp)
-
デバイスタイプ
-
国
-
クライアントIP
-
ホスト名
-
リクエストURI
-
オリジン応答ステータス
-
エッジ応答ステータス
-
オリジンIP
-
ユーザーエージェント
-
RayID
-
Workerサブリクエスト
-
クライアントリクエストメソッド
Lookerダッシュボードの以下のプリセットフィルター値では、すべてのワーカーサブリクエストとクライアントリクエストメソッドPURGEが計算から除外されます:
-
WorkerSubrequetがFalseに設定されている
-
ClientRequestMethodがPURGEと等しくない
ニーズに応じて、デフォルトのフィルター値を調整することができます。