Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Splunk

最終更新 Markdown で表示Agent セットアップ

このチュートリアルでは、Cloudflare App for Splunk を使って Cloudflare Logs を分析する手順を説明します。

前提条件

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 AppsCloudflare App for Splunk を検索します。
  3. Install をクリックします。
Apps メニューが開き、Search & Reporting メニュー項目と Cloudflare App for Splunk が表示された Splunk サイト
  1. Splunk インスタンスを再起動し、再度開きます。

  2. Cloudflare App for Splunk の cloudflare:json ソースタイプを編集します。ソースタイプを編集するには、次の手順を行います。

    1. Settings ドロップダウンをクリックし、Source types を選びます。
    2. Show only popular のチェックを外し、cloudflare を検索します。
    3. Edit をクリックし、正規表現を ([\r\n]+) に変更します。
    4. 編集内容を保存します。
  3. HTTP Event ログを保存する Splunk のインデックスを作成します。インデックスを作成するには、次の手順を行います。

    1. Settings ドロップダウンをクリックし、Indexes をクリックしてセットアップ画面を開きます。
    2. New Index を選びます。Indexes ページでは既存インデックスの状態も分かるため、ライセンス容量を使い切る直前かどうかも確認できます。
    3. インデックス名は cloudflare にします。Cloudflare App が使うデフォルトのインデックスです。
    4. Index Data TypeEvents にし、Save を選びます。
  4. Splunk で HTTP Event Collector(HEC)を設定します。HEC を作成するには、次の手順を行います。

    1. Settings ドロップダウンをクリックし、Data inputs を選びます。
    2. HTTP Event Collector の横の +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>" or "<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 のドキュメント を参照してください。

インストール後の注意

初回設定のあとで Index Name を変更するには、Settings ドロップダウンをクリックし、Advanced search へ移動します。そこで Search macros を選び、Cloudflare App for Splunk を探します。

Apps メニューと Manage Apps オプション、Enable Acceleration チェックボックスが強調された Splunk インターフェース

Cloudflare App for Splunk にはカスタムの Cloudflare Data Model が付属します。アクセラレーションの期間は 1 日ですが、デフォルトではアクセラレーションしません。Data Model acceleration を有効にする場合は、Splunk 環境への悪影響を避けるため、Data Model のアクセラレーション期間は 1 日または 7 日だけにすることをおすすめします。

初回設定のあとでアクセラレーションを有効または無効にするには、Apps ドロップダウンをクリックし、Manage Apps > Cloudflare Set Up からアプリのセットアップページを開きます。

Search macros と Advanced search が強調された Splunk の Advanced Search ページ

Settings > Data models から Data Model を手作業で設定することもできます。Data Model acceleration の詳細は Splunk のドキュメント を参照してください。

タスク 2 - Splunk 向けの Cloudflare Logpush ジョブを作成する

Enable Logpush to Splunk の手順で Logpush ジョブを作成します。Splunk の送信先を入力するときは、次のようにします。

  • Splunk HEC URL には、タスク 1 で設定したエンドポイントを使い、/services/collector/raw パスを含めます。
  • Auth Token には、タスク 1 で作成した HEC トークンを使い、先頭に Splunk を付けます(例: Splunk 12345678-1234-1234-1234-1234567890ab)。
  • Source Type は、送りたいデータセットに合う値にします。Cloudflare App for Splunk がイベントを正しく解析します。
    • HTTP リクエスト、Firewall イベント、Spectrum イベント、およびほとんどのゾーンスコープのデータセット: cloudflare:json
    • DNS ログ(Zero Trust Gateway DNS を含む): cloudflare:dns
    • Audit ログ: cloudflare:audit
    • Access リクエスト: cloudflare:access
    • CASB findings: cloudflare:casb
    • Zero Trust Gateway HTTP: cloudflare:http
    • Zero Trust Gateway Network: cloudflare:network
  • Use insecure skip verify option をオンにするのは、タスク 1 で確認したとおり、Splunk インスタンスが自己署名証明書を使う場合だけにしてください。

Send the following fields では、デフォルトのままにするか、ダッシュボードの節 を参照して、Cloudflare App for Splunk のダッシュボードを埋めるために必要なフィールドを選びます。

ジョブを作成したら有効にして、ログの送信を開始します。エンドツーエンドの配信を確認するには、Splunk で次の検索を実行します。

index="cloudflare"

ジョブを有効にすると、接続と配信設定を確認するためのシステム確認イベントが 2 件送られます。通常の Cloudflare ログは、その直後からストリーミングされます。データが表示されるまで数分かかることがあります。

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

次に挙げる 13 のダッシュボードで、Cloudflare ログを分析できます。

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

ダッシュボードについて

次のダッシュボードは、Cloudflare App for Splunk の一部として利用できます。

Cloudflare - Snapshot

Web Traffic OverviewWeb Traffic Types: Cloudflare ネットワーク上のウェブサイトとアプリケーションで、いちばん重要な指標の概要を確認します。 Web Traffic Overview の指標が表示された Splunk ダッシュボード

Cloudflare - Reliability

SummaryDetailed: ウェブサイトとアプリケーションの可用性に関するインサイトを確認します。指標には、オリジン応答のエラー比率、時間経過に沿ったオリジン応答ステータス、時間経過に沿った 3xx/4xx/5xx エラーの割合などがあります。 Reliability 指標の概要が表示された Splunk ダッシュボード

Reliability 指標の詳細が表示された Splunk ダッシュボード

Cloudflare - Security

Overview: ウェブサイトとアプリケーションへの脅威に関するインサイトを確認します。阻止した脅威数、時間経過に沿った脅威、脅威の多い国の上位などがあります。 Security 指標の概要が表示された Splunk ダッシュボード

WAF: Web Application Firewall による脅威の識別と緩和に関するインサイトを確認します。SQL インジェクション、XSS などのイベントが含まれます。このデータを使い、明らかな脅威を狙い、誤検知を減らすようファイアウォールを調整します。 WAF 向け Security 指標の概要が表示された Splunk ダッシュボード

Rate Limiting: サービス拒否攻撃、総当たりログイン試行、その他の悪用からウェブサイトやアプリケーションを守るレート制限のインサイトを確認します。 Rate Limiting 向け Security 指標の概要が表示された Splunk ダッシュボード

Bots SummaryBots Detailed: サイト上のボット活動を調査し、コンテンツスクレイピング、チェックアウト詐欺、スパム登録などの悪意のある活動を防ぎます。 Bots 向け Security 指標の概要が表示された Splunk ダッシュボード

Bots 向け Security 指標の詳細が表示された Splunk ダッシュボード

Cloudflare - Performance

Requests and CacheBandwidth: パフォーマンスの問題とキャッシュの誤設定を特定し、対処します。指標には、合計帯域とキャッシュ済み帯域、節約した帯域、リクエスト総数、キャッシュ比率、キャッシュされていないリクエストの上位などがあります。 Requests and Cache の Performance 指標が表示された Splunk ダッシュボード

Bandwidth の Performance 指標が表示された Splunk ダッシュボード

Hostname, Content Type, Request Methods, Connection Type: よく使われるホスト名、よくリクエストされるコンテンツタイプ、リクエストメソッドの内訳、接続タイプに関するインサイトを確認します。

Hostname、Content Type、Request Methods、Connection Type を含む Cloudflare Performance 指標が表示された Splunk ダッシュボード

Static vs. Dynamic Content: 静的コンテンツと動的コンテンツのパフォーマンスに関するインサイトを確認します。もっとも遅い URL も含まれます。 Static vs. Dynamic Content の Cloudflare Performance 指標が表示された Splunk ダッシュボード

フィルター

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

Splunk ダッシュボードで利用できるフィルター

フィルターで掘り下げ、より細かい粒度でデータを確認できます。フィルターには、クライアントの国、クライアントのデバイス種類、クライアント IP、クライアントリクエストホスト、クライアントリクエスト URI、クライアントリクエストのユーザーエージェント、エッジ応答ステータス、オリジン IP、オリジン応答ステータスがあります。

デフォルトの時間間隔は 24 時間です。正しい計算のため、フィルターでは Worker サブリクエスト(WorkerSubrequest = false)とパージリクエスト(ClientRequestMethodPURGE ではない)を除外してください。

利用できるフィルター:

  • Time Range (EdgeStartTimestamp)

  • Client Country

  • Client Device type

  • Client IP

  • Client Request Host

  • Client Request URI

  • Client Request User Agent

  • Edge response status

  • Origin IP

  • Origin Response Status

  • RayID

  • Worker Subrequest

  • Client Request Method

Splunk CIM フィールドマッピング

Cloudflare App for Splunk は、Cloudflare のログフィールドを Splunk Common Information Model (CIM) のフィールド名にマッピングします。Splunk 環境内の他の CIM 準拠ソースと並べて、Cloudflare データを検索、関連付け、アクセラレーションできます。次の表は、アプリが Cloudflare Logpush データセットごとに適用するマッピングです。

HTTP リクエスト

アプリは次のマッピングを適用します。

Cloudflare フィールド Splunk CIM フィールド
ClientIP src_ip
ClientRequestBytes bytes_in
ClientRequestHost dest_host
ClientRequestMethod http_method
ClientRequestPath uri_path
ClientRequestReferer http_referrer
ClientRequestURI uri
ClientRequestUserAgent http_user_agent
ClientSrcPort src_port
ClientSSLProtocol ssl_protocol
EdgeRateLimitAction action
EdgeResponseBytes bytes_out
EdgeResponseContentType http_content_type
EdgeResponseStatus status
OriginIP dest_ip
OriginResponseTime response_time

CASB findings

アプリは次のマッピングを適用します。

Cloudflare フィールド Splunk CIM フィールド
AssetDisplayName dest
AssetLink url
FindingTypeDisplayName category
FindingTypeID category_id
FindingTypeSeverity severity
InstanceID signature_id

Zero Trust Gateway DNS

アプリは次のマッピングを適用します。

Cloudflare フィールド Splunk CIM フィールド
DstIP dest
DstPort dest_port
Protocol transport
QueryName query
QueryTypeName query_type
RCode reply_code
SrcIP src
SrcPort src_port

Audit ログ

アプリは次のマッピングを適用します。

Cloudflare フィールド Splunk CIM フィールド
ActionResult status
ActionType action
ActorID user
ActorIP src
ActorType user_category
OwnerID src_user

Access リクエスト

アプリは次のマッピングを適用します。

Cloudflare フィールド Splunk CIM フィールド
Action action
AppDomain app
Connection authentication_service
IPAddress src
PurposeJustificationResponse reason
RayID signature_id
UserUID user_id

Zero Trust Gateway HTTP

アプリは次のマッピングを適用します。

Cloudflare フィールド Splunk CIM フィールド
Action action
DestinationIP dest
DestinationPort dest_port
HTTPMethod http_method
Referer http_referrer
SourceIP src
URL url
UserAgent http_user_agent
UserID user

Zero Trust Gateway Network

アプリは次のマッピングを適用します。

Cloudflare フィールド Splunk CIM フィールド
Action action
DestinationIP dest_ip
DestinationPort dest_port
DeviceName dvc
OverrideIP dest_translated_ip
OverridePort dest_translated_port
PolicyID rule
SessionID session_id
SourceIP src_ip
SourcePort src_port
Transport transport
UserID user

デバッグのヒント

ダッシュボードが埋まらない場合

Splunk Cloudflare App は、次に挙げる Cloudflare Enterprise Logs のフィールドに依存します。有効にしているフィールドによっては、一部のダッシュボードが十分に埋まらないことがあります。

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

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

利用できるフィールドは次のとおりです。

  • CacheCacheStatus

  • CacheResponseBytes

  • CacheResponseStatus (deprecated)

  • 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

役に立ちましたか?