コンテンツにスキップ

Splunk

このチュートリアルでは、Cloudflare LogsCloudflare App for Splunkを使用して分析する方法を説明します。

前提条件

CloudflareのログデータをSplunkに送信する前に、以下を確認してください:

  • 既存のSplunk EnterpriseまたはCloudアカウントを持っていること
  • Cloudflare Enterpriseアカウントを持っていること
  • Cloudflare AppのためのSplunkドキュメントを参照すること

タスク 1 - Cloudflare App for Splunkのインストールと設定

Cloudflare App for Splunkをインストールするには:

  1. Splunkインスタンスにログインします。
  2. Apps > Find More Appsの下で、Cloudflare App for Splunkを検索します。
  3. Installをクリックします。

SplunkのウェブサイトでAppsメニューが展開され、Search & Reportingメニュー項目とCloudflare App for Splunkが表示されています

  1. Splunkインスタンスを再起動し、再度開きます。

  2. Cloudflare App for Splunkでcloudflare:jsonソースタイプを編集します。ソースタイプを編集するには:

    1. Settingsドロップダウンをクリックし、Source typesを選択します。
    2. Show only popularのチェックを外し、cloudflareを検索します。
    3. Editをクリックし、Regex式を([\r\n]+)に変更します。
    4. 編集内容を保存します。
  3. HTTPイベントログを保存するためにSplunkにインデックスを作成します。インデックスを作成するには:

    1. Settingsドロップダウンをクリックしてセットアップ画面を開き、Indexesをクリックします。
    2. New Indexを選択します。Indexesページでは、既存のインデックスのステータスも表示され、ライセンスされたスペースの使用状況を確認できます。
    3. インデックス名をcloudflareとします。これはCloudflare Appが使用するデフォルトのインデックスです。
  4. SplunkでHTTPイベントコレクター(HEC)を設定します。HECを作成するには:

    1. Settingsドロップダウンをクリックし、Data inputsを選択します。
    2. +Add newをクリックし、ウィザードに従います。プロンプトが表示されたら、以下の回答を提出します:
      • Name: Cloudflare
      • Source Type: Select > “cloudflare:json ”
      • App Context: Cloudflare App for Splunk (cloudflare)
      • Index: cloudflare
    3. ウィザードの最後にToken Valueが表示されます。このトークンはCloudflare LogpushジョブがデータをSplunkインスタンスに送信することを許可します。今コピーするのを忘れた場合でも、Splunkではいつでも値を取得できます。
  5. Splunkが自己署名証明書を使用しているかどうかを確認します。Logpushジョブを作成する際にこの情報が必要です。

  6. データを送信するためのエンドポイントを決定します。エンドポイントは次のようになります:

"<protocol>://input-<host>:<port>/<endpoint>" または "<protocol>://http-inputs-<host>:<port>/<endpoint>"

ここで:

  • protocol: HTTPまたはHTTPS
  • input: 自己サービスまたは管理されたクラウドプランに基づいてinputまたはhttp-inputs
  • host: Splunkインスタンスのホスト名。ホスト名を確認する最も簡単な方法は、SplunkにログインしたときにアクセスしたURLを見ることです。
  • port: 443または8088
  • endpoint: services/collector/raw

例えば:https://prd-p-0qk3h.splunkcloud.com:8088/services/collector/raw。詳細や例については、Splunk Documentationを参照してください。

インストール後の注意事項

初期設定後にIndex Nameを変更するには、Settingsドロップダウンをクリックし、Advance searchに移動します。そこでSearch macrosを選択し、Cloudflare App for Splunkを探します。

SplunkインターフェースでAppsメニューとManage Appsオプション、Enable Accelerationチェックボックスが強調表示されています

Cloudflare App for Splunkには、1日の加速時間枠を持つカスタムCloudflareデータモデルが付属していますが、デフォルトでは加速されていません。データモデルの加速を有効にする場合、Splunk環境内での悪影響を避けるために、データモデルは1日または7日のみ加速されることをお勧めします。

初期設定後に加速を有効または無効にするには、Appsドロップダウンをクリックし、Manage Apps > Cloudflare Set Upにアクセスします。

SplunkのAdvanced SearchページでSearch macrosとAdvanced searchが強調表示されています

また、Settings > Data modelsに移動してデータモデルを手動で設定することもできます。データモデルの加速については、Splunkドキュメントで詳しく学ぶことができます。

タスク 2 - Logpushジョブを作成するためのAPI呼び出しを行う

Enable Logpush to Splunkの指示に従ってLogpushジョブを作成します。API呼び出しはLogpushジョブを作成しますが、有効にはしません。

CloudflareダッシュボードまたはAPIを通じてLogpushジョブを有効にするには、Enable Logpush to Splunkの指示に従います。ダッシュボードを通じて有効にするには:

  1. Cloudflareダッシュボードに移動し、Analytics & Logs > Logsを選択します。
  2. Editを選択し、以下のダッシュボードセクションで参照されているフィールドを選択して、すべてのテーブルとグラフを完全に埋めます。
  3. Editリンクの隣にあるスイッチを切り替えてLogpushジョブを有効にします。データが反映されるまで数分かかります。

データを受信していることを確認するには、Splunkでindex=cloudflareを検索します。

タスク 3 - ダッシュボードを表示する

以下の13のダッシュボードを使用してCloudflareログを分析できます。

これらのダッシュボード内でフィルターを使用して、日付と時間、デバイスタイプ、国、ユーザーエージェント、クライアントIP、ホスト名などで分析を絞り込むことができ、デバッグやトレースに役立ちます。

ダッシュボードについて

以下に示すダッシュボードは、Cloudflare App for Splunkの一部として利用可能です。

Cloudflare - スナップショット

Web Traffic OverviewWeb Traffic Types: Cloudflareネットワーク上のウェブサイトやアプリケーションからの最も重要なメトリクスの概要を取得します。 SplunkダッシュボードでWeb Traffic Overviewメトリクスが表示されています

Cloudflare - 信頼性

SummaryDetailed: ウェブサイトやアプリケーションの可用性に関する洞察を得ます。メトリクスには、オリジン応答エラー比、オリジン応答ステータスの推移、3xx/4xx/5xxエラーの割合などが含まれます。 Splunkダッシュボードで信頼性メトリクスの高レベルの概要が表示されています

Splunkダッシュボードで信頼性メトリクスの詳細な概要が表示されています

Cloudflare - セキュリティ

Overview: ウェブサイトやアプリケーションに対する脅威に関する洞察を得ます。これには、停止された脅威の数、時間経過に伴う脅威、主要な脅威国などが含まれます。 Splunkダッシュボードでセキュリティメトリクスの概要が表示されています

WAF: SQLインジェクション、XSSなどのイベントを含む、Webアプリケーションファイアウォールによる脅威の特定と緩和に関する洞察を得ます。このデータを使用して、明らかな脅威をターゲットにし、誤検知を防ぐためにファイアウォールを微調整します。 SplunkダッシュボードでWAFのセキュリティメトリクスの概要が表示されています

Rate Limiting: サービス拒否攻撃、ブルートフォースログイン試行、ウェブサイトやアプリケーションに対するその他の悪用行為に対するレート制限保護に関する洞察を得ます。 Splunkダッシュボードでレート制限のセキュリティメトリクスの概要が表示されています

Bots SummaryBots Detailed: ウェブサイト上のボット活動を調査し、コンテンツのスクレイピング、チェックアウト詐欺、スパム登録などの悪意のある活動を防ぎます。 Splunkダッシュボードでボットのセキュリティメトリクスの高レベルの概要が表示されています

Splunkダッシュボードでボットのセキュリティメトリクスの詳細な概要が表示されています

Cloudflare - パフォーマンス

Requests and CacheBandwidth: パフォーマンスの問題やキャッシュの誤設定を特定して対処します。メトリクスには、合計対キャッシュされた帯域幅、保存された帯域幅、合計リクエスト、キャッシュ比率、最もキャッシュされていないリクエストなどが含まれます。 Splunkダッシュボードでリクエストとキャッシュのパフォーマンスメトリクスが表示されています

Splunkダッシュボードで帯域幅のパフォーマンスメトリクスが表示されています

Hostname, Content Type, Request Methods, Connection Type: 最も人気のあるホスト名、最もリクエストされたコンテンツタイプ、リクエストメソッドの内訳、接続タイプに関する洞察を得ます。

Splunkダッシュボードでホスト名、コンテンツタイプ、リクエストメソッド、接続タイプのCloudflareパフォーマンスメトリクスが表示されています

Static vs. Dynamic Content: 静的および動的コンテンツのパフォーマンスに関する洞察を得ます。これには、最も遅いURLが含まれます。 Splunkダッシュボードで静的対動的コンテンツのCloudflareパフォーマンスメトリクスが表示されています

フィルター

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

Splunkダッシュボードの利用可能なフィルター

フィルターを使用して、データを詳細に調査できます。フィルターには、クライアント国、クライアントデバイスタイプ、クライアントIP、クライアントリクエストホスト、クライアントリクエストURI、クライアントリクエストユーザーエージェント、エッジ応答ステータス、オリジンIP、オリジン応答ステータスが含まれます。

デフォルトの時間間隔は24時間に設定されています。正確な計算を行うには、フィルターはWorkerサブリクエスト(WorkerSubrequest = false)とパージリクエスト(ClientRequestMethodPURGEでない)を除外する必要があります。

利用可能なフィルター:

  • 時間範囲 (EdgeStartTimestamp)

  • クライアント国

  • クライアントデバイスタイプ

  • クライアントIP

  • クライアントリクエストホスト

  • クライアントリクエストURI

  • クライアントリクエストユーザーエージェント

  • エッジ応答ステータス

  • オリジンIP

  • オリジン応答ステータス

  • RayID

  • Workerサブリクエスト

  • クライアントリクエストメソッド

デバッグのヒント

不完全なダッシュボード

Splunk Cloudflare Appは、以下に示すCloudflare Enterprise Logsフィールドからのデータに依存しています。どのフィールドを有効にしているかによって、特定のダッシュボードが完全に表示されない場合があります。

その場合は、各ダッシュボードの下にあるCloudflare Appフィルターを確認し、テストしてください(これらのフィルターはすべてのダッシュボードで同じです)。必要のないフィルターは削除できます。たとえそのフィルターにログに既に含まれているデータフィールドが含まれていてもです。

また、Cloudflare Logsで取得しているフィールドのリストを、Splunk > Settings > Data Model > Cloudflareにリストされているフィールドと比較することもできます。

利用可能なフィールドは以下の通りです:

  • CacheCacheStatus

  • CacheResponseBytes

  • CacheResponseStatus

  • ClientASN

  • ClientCountry

  • ClientDeviceType

  • ClientIP

  • ClientIPClass

  • ClientRequestBytes

  • ClientRequestHost

  • ClientRequestMethod

  • ClientRequestPath

  • ClientRequestProtocol

  • ClientRequestReferer

  • ClientRequestURI

  • ClientRequestUserAgent

  • ClientSSLCipher

  • ClientSSLProtocol

  • ClientSrcPort

  • EdgeColoCode

  • EdgeColoID

  • EdgeEndTimestamp

  • EdgePathingOp

  • EdgePathingSrc

  • EdgePathingStatus

  • EdgeRequestHost

  • EdgeResponseBytes

  • EdgeResponseContentType

  • EdgeResponseStatus

  • EdgeServerIP

  • EdgeStartTimestamp

  • OriginIP

  • OriginResponseStatus

  • OriginResponseTime

  • OriginSSLProtocol

  • RayID

  • SecurityAction

  • SecurityActions

  • SecurityRuleDescription

  • SecurityRuleID

  • SecurityRuleIDs

  • SecuritySources

  • WAFFlags

  • WAFMatchedVar

  • WorkerSubrequest

  • ZoneID


さらなるリソース

Video tutorial: Send Network Analytics logs to Splunk

The following video shows how to integrate Network Analytics logs in Splunk.