Splunk
このチュートリアルでは、Cloudflare Logs ↗をCloudflare App for Splunk ↗を使用して分析する方法を説明します。
CloudflareのログデータをSplunkに送信する前に、以下を確認してください:
- 既存のSplunk EnterpriseまたはCloudアカウントを持っていること
- Cloudflare Enterpriseアカウントを持っていること
- Cloudflare AppのためのSplunkドキュメント ↗を参照すること
Cloudflare App for Splunk ↗をインストールするには:
- Splunkインスタンスにログインします。
- Apps > Find More Appsの下で、Cloudflare App for Splunkを検索します。
- Installをクリックします。

-
Splunkインスタンスを再起動し、再度開きます。
-
Cloudflare App for Splunkで
cloudflare:jsonソースタイプを編集します。ソースタイプを編集するには:- Settingsドロップダウンをクリックし、Source typesを選択します。
- Show only popularのチェックを外し、cloudflareを検索します。
- Editをクリックし、Regex式を
([\r\n]+)に変更します。 - 編集内容を保存します。
-
HTTPイベントログを保存するためにSplunkにインデックスを作成します。インデックスを作成するには:
- Settingsドロップダウンをクリックしてセットアップ画面を開き、Indexesをクリックします。
- New Indexを選択します。Indexesページでは、既存のインデックスのステータスも表示され、ライセンスされたスペースの使用状況を確認できます。
- インデックス名をcloudflareとします。これはCloudflare Appが使用するデフォルトのインデックスです。
-
SplunkでHTTPイベントコレクター(HEC)を設定します。HECを作成するには:
- Settingsドロップダウンをクリックし、Data inputsを選択します。
- +Add newをクリックし、ウィザードに従います。プロンプトが表示されたら、以下の回答を提出します:
- Name: Cloudflare
- Source Type: Select > “cloudflare:json ”
- App Context: Cloudflare App for Splunk (cloudflare)
- Index: cloudflare
- ウィザードの最後にToken Valueが表示されます。このトークンはCloudflare LogpushジョブがデータをSplunkインスタンスに送信することを許可します。今コピーするのを忘れた場合でも、Splunkではいつでも値を取得できます。
-
Splunkが自己署名証明書を使用しているかどうかを確認します。Logpushジョブを作成する際にこの情報が必要です。
-
データを送信するためのエンドポイントを決定します。エンドポイントは次のようになります:
"<protocol>://input-<host>:<port>/<endpoint>" または "<protocol>://http-inputs-<host>:<port>/<endpoint>"ここで:
protocol: HTTPまたはHTTPSinput: 自己サービスまたは管理されたクラウドプランに基づいてinputまたはhttp-inputshost: Splunkインスタンスのホスト名。ホスト名を確認する最も簡単な方法は、SplunkにログインしたときにアクセスしたURLを見ることです。port: 443または8088endpoint: 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を探します。

Cloudflare App for Splunkには、1日の加速時間枠を持つカスタムCloudflareデータモデルが付属していますが、デフォルトでは加速されていません。データモデルの加速 ↗を有効にする場合、Splunk環境内での悪影響を避けるために、データモデルは1日または7日のみ加速されることをお勧めします。
初期設定後に加速を有効または無効にするには、Appsドロップダウンをクリックし、Manage Apps > Cloudflare Set Upにアクセスします。

また、Settings > Data modelsに移動してデータモデルを手動で設定することもできます。データモデルの加速については、Splunkドキュメント ↗で詳しく学ぶことができます。
Enable Logpush to Splunkの指示に従ってLogpushジョブを作成します。API呼び出しはLogpushジョブを作成しますが、有効にはしません。
CloudflareダッシュボードまたはAPIを通じてLogpushジョブを有効にするには、Enable Logpush to Splunkの指示に従います。ダッシュボードを通じて有効にするには:
- Cloudflareダッシュボードに移動し、Analytics & Logs > Logsを選択します。
- Editを選択し、以下のダッシュボードセクションで参照されているフィールドを選択して、すべてのテーブルとグラフを完全に埋めます。
- Editリンクの隣にあるスイッチを切り替えてLogpushジョブを有効にします。データが反映されるまで数分かかります。
データを受信していることを確認するには、Splunkでindex=cloudflareを検索します。
以下の13のダッシュボードを使用してCloudflareログを分析できます。
これらのダッシュボード内でフィルターを使用して、日付と時間、デバイスタイプ、国、ユーザーエージェント、クライアントIP、ホスト名などで分析を絞り込むことができ、デバッグやトレースに役立ちます。
以下に示すダッシュボードは、Cloudflare App for Splunkの一部として利用可能です。
Web Traffic OverviewとWeb Traffic Types: Cloudflareネットワーク上のウェブサイトやアプリケーションからの最も重要なメトリクスの概要を取得します。

SummaryとDetailed: ウェブサイトやアプリケーションの可用性に関する洞察を得ます。メトリクスには、オリジン応答エラー比、オリジン応答ステータスの推移、3xx/4xx/5xxエラーの割合などが含まれます。


Overview: ウェブサイトやアプリケーションに対する脅威に関する洞察を得ます。これには、停止された脅威の数、時間経過に伴う脅威、主要な脅威国などが含まれます。

WAF: SQLインジェクション、XSSなどのイベントを含む、Webアプリケーションファイアウォールによる脅威の特定と緩和に関する洞察を得ます。このデータを使用して、明らかな脅威をターゲットにし、誤検知を防ぐためにファイアウォールを微調整します。

Rate Limiting: サービス拒否攻撃、ブルートフォースログイン試行、ウェブサイトやアプリケーションに対するその他の悪用行為に対するレート制限保護に関する洞察を得ます。

Bots SummaryとBots Detailed: ウェブサイト上のボット活動を調査し、コンテンツのスクレイピング、チェックアウト詐欺、スパム登録などの悪意のある活動を防ぎます。


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


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

Static vs. Dynamic Content: 静的および動的コンテンツのパフォーマンスに関する洞察を得ます。これには、最も遅いURLが含まれます。

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

フィルターを使用して、データを詳細に調査できます。フィルターには、クライアント国、クライアントデバイスタイプ、クライアントIP、クライアントリクエストホスト、クライアントリクエストURI、クライアントリクエストユーザーエージェント、エッジ応答ステータス、オリジンIP、オリジン応答ステータスが含まれます。
デフォルトの時間間隔は24時間に設定されています。正確な計算を行うには、フィルターはWorkerサブリクエスト(WorkerSubrequest = false)とパージリクエスト(ClientRequestMethodがPURGEでない)を除外する必要があります。
利用可能なフィルター:
-
時間範囲 (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
The following video shows how to integrate Network Analytics logs in Splunk.