ログストリーミング:Splunk

Fastly の リアルタイムログストリーミング 機能によって Splunk にログファイルを送信することができます。Splunk は、開発者や IT チームが使用するウェブベースのログ分析プラットフォームです。

注意

Fastly ではサードパーティのサービスに関する直接のサポートは行っておりません。詳細については、Fastly のご利用規約をご覧ください。

前提条件

Splunk をログエンドポイントとして使用するには、HTTP イベントコレクター (HEC) を有効にし、トークンを作成・有効にする必要があります。Splunk の Web サイトに掲載されている次の指示に従ってください。

  1. Enable HEC
  2. HEC トークンを作成します
  3. HEC トークンを有効にします
  4. ログストリーミングに Fastly が使用するトークンのインデクサー確認を無効にする

HEC トークンは忘れずに記憶しておいてください。また、コレクターの URL を特定する必要があります。URL の構造は、使用している Splunk インスタンスの種類によって異なります。Splunk インスタンスの URL 構造を、以下から選んでください。

種類URL
セルフホスト型https://<hostname>:8088/services/collector/event
セルフサービスの Splunk Cloud プランhttps://input-<hostname>:8088/services/collector/event
その他の Splunk Cloud プランhttps://http-inputs-<hostname>:8088/services/collector/event

Splunk にログインすると、Web ブラウザのアドレスバーで URL のホスト名を検索することができます。

Splunk をログエンドポイントとして追加する

Splunk アカウントを作成し、カスタマートークンを取得した後、Fastly サービスのログエンドポイントとして、以下の指示に従って Splunk を追加してください。

  1. 配信サービス
  2. Compute サービス
  1. リモートログストリーミングの設定に関するガイドをご確認ください。
  2. Splunk エリアで、Create endpoint をクリックします。
  3. Create a Splunk endpointフィールドに以下のように記入します。
    • Name フィールドに分かりやすいエンドポイントの名前を入力します。
    • Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Defaultwaf_debug (waf_debug_log)None です。詳細については、ログ配置の変更に関するガイドをご覧ください。
    • Log format フィールドには、ログフォーマットに使用するための Apache 形式の文字列や VCL 変数を入力します。推奨されるログフォーマットをご利用ください。
    • URL フィールドには、データを送信する URL を入力します (例:https://<splunk_host>:8088/services/collector/event/1.0)。
    • Tokenフィールドには、HEC のトークンを入力します。
    • (オプション) Use TLS コントロールから、TLS を有効にするかどうかを選択します。 Yes を選択すると、追加の TLS フィールドが表示されます。
    • TLS hostname フィールドに、ログの送信先サーバーの証明書を検証するためのホスト名を任意で入力します。これは、証明書のサブジェクト代替名 (SAN) フィールドの1つと同じである必要があります。コモンネーム (CN) はサポートされていません。 Splunk Enterprise を利用している場合、詳細については、以下の Splunk Enterprise のセクションをご覧ください。
    • TLS CA certificate フィールドには、オリジン証明書が有効であることを確認するために使用する CA 証明書を入力します。これは PEM 形式でなければなりません。オリジン側の TLS 証明書が周知の機関によって署名されていれば、必要ありません。詳しくは TLS の CA 証明書を使用するセクションを参照してください。
    • (オプション) TLS client certificate フィールドには、オリジンサーバーへの認証に使用する TLS クライアント証明書をコピー&ペーストしてください。アップロードする TLS クライアント証明書は、PEM 形式で、クライアント証明書を添付する必要があります。TLS クライアント証明書により、Fastly が接続を実行していることをサーバーが認証できるようになります。このフィールドは、Use TLS メニューから Yes を選択した場合にのみ表示されます。
    • (オプション) TLS client key フィールドには、バックエンドサーバーへの認証に使用する TLS クライアントキーをコピー&ペーストしてください。アップロードする TLS クライアントキーは、PEM 形式で、TLS クライアント証明書を添付する必要があります。TLSクライアントキーを使用すると、Fastlyが接続を実行していることをサーバが認証することができます。
    • (オプション) Maximum logs フィールドに、ゼロでない場合、バッチに追加するログの最大数を入力します。
    • (オプション) Maximum bytes フィールドには、ログバッチの最大サイズを入力します。
  4. Create をクリックして新規のログエンドポイントを作成します。
  5. Activate をクリックして設定への変更をデプロイします。

推奨されるログ形式

Splunk にデータを送信するために、以下のログフォーマットを使用することをお勧めします。

注意

Splunk HEC に送信されるすべての JSON には、イベントフィールドがなくてはなりません。イベントフィールドには、テキストまたはネストされた JSON を使用できます。また、ペイロードには他のメタデータが含まれることもあります。さらに詳しい情報は、Splunk ドキュメントをご参照ください。

1{
2 "time":%{time.start.sec}V,
3 "host":"%{Fastly-Orig-Host}i",
4 "event": {
5 "service_id":"%{req.service_id}V",
6 "time_start":"%{begin:%Y-%m-%dT%H:%M:%S%Z}t",
7 "time_end":"%{end:%Y-%m-%dT%H:%M:%S%Z}t",
8 "time_elapsed":%D,
9 "client_ip":"%h",
10 "client_as_name":"%{client.as.name}V",
11 "client_as_number":"%{client.as.number}V",
12 "client_connection_speed":"%{client.geo.conn_speed}V",
13 "request":"%m",
14 "protocol":"%H",
15 "origin_host":"%v",
16 "url":"%{cstr_escape(req.url)}V",
17 "is_ipv6":%{if(req.is_ipv6, "true", "false")}V,
18 "is_tls":%{if(req.is_ssl, "true", "false")}V,
19 "tls_client_protocol":"%{cstr_escape(tls.client.protocol)}V",
20 "tls_client_servername":"%{cstr_escape(tls.client.servername)}V",
21 "tls_client_cipher":"%{cstr_escape(tls.client.cipher)}V",
22 "tls_client_cipher_sha":"%{cstr_escape(tls.client.ciphers_sha )}V",
23 "tls_client_tlsexts_sha":"%{cstr_escape(tls.client.tlsexts_sha)}V",
24 "is_h2":%{if(fastly_info.is_h2, "true", "false")}V,
25 "is_h2_push":%{if(fastly_info.h2.is_push, "true", "false")}V,
26 "h2_stream_id":"%{fastly_info.h2.stream_id}V",
27 "request_referer":"%{Referer}i",
28 "request_user_agent":"%{User-Agent}i",
29 "request_accept_content":"%{Accept}i",
30 "request_accept_language":"%{Accept-Language}i",
31 "request_accept_encoding":"%{Accept-Encoding}i",
32 "request_accept_charset":"%{Accept-Charset}i",
33 "request_connection":"%{Connection}i",
34 "request_dnt":"%{DNT}i",
35 "request_forwarded":"%{Forwarded}i",
36 "request_via":"%{Via}i",
37 "request_cache_control":"%{Cache-Control}i",
38 "request_x_requested_with":"%{X-Requested-With}i",
39 "request_x_att_device_id":"%{X-ATT-Device-Id}i",
40 "request_x_forwarded_for":"%{X-Forwarded-For}i",
41 "status":"%s",
42 "content_type":"%{Content-Type}o",
43 "response_state":"%{fastly_info.state}V",
44 "response_age":"%{Age}o",
45 "response_cache_control":"%{Cache-Control}o",
46 "response_expires":"%{Expires}o",
47 "response_last_modified":"%{Last-Modified}o",
48 "response_tsv":"%{TSV}o",
49 "server_datacenter":"%{server.datacenter}V",
50 "server_ip":"%A",
51 "geo_city":"%{client.geo.city.utf8}V",
52 "geo_country_code":"%{client.geo.country_code}V",
53 "geo_continent_code":"%{client.geo.continent_code}V",
54 "geo_region":"%{client.geo.region}V",
55 "req_header_size":%{req.header_bytes_read}V,
56 "req_body_size":%{req.body_bytes_read}V,
57 "resp_header_size":%{resp.header_bytes_written}V,
58 "resp_body_size":%B,
59 "socket_cwnd":%{client.socket.cwnd}V,
60 "socket_nexthop":"%{client.socket.nexthop}V",
61 "socket_tcpi_rcv_mss":%{client.socket.tcpi_rcv_mss}V,
62 "socket_tcpi_snd_mss":%{client.socket.tcpi_snd_mss}V,
63 "socket_tcpi_rtt":%{client.socket.tcpi_rtt}V,
64 "socket_tcpi_rttvar":%{client.socket.tcpi_rttvar}V,
65 "socket_tcpi_rcv_rtt":%{client.socket.tcpi_rcv_rtt}V,
66 "socket_tcpi_rcv_space":%{client.socket.tcpi_rcv_space}V,
67 "socket_tcpi_last_data_sent":%{client.socket.tcpi_last_data_sent}V,
68 "socket_tcpi_total_retrans":%{client.socket.tcpi_total_retrans}V,
69 "socket_tcpi_delta_retrans":%{client.socket.tcpi_delta_retrans}V,
70 "socket_ploss":%{client.socket.ploss}V
71 }
72}

TLS の CA 証明書を使用する

Splunk Enterprise や Splunk Cloud にてご自身の TLS 証明書をインストールしている場合には、関連する CA 証明書を提供する必要があります。

Splunk Cloud

Splunk Cloud の場合、以下の CA 証明書がデフォルトで設定されています。

1-----BEGIN CERTIFICATE-----
2MIIB/DCCAaGgAwIBAgIBADAKBggqhkjOPQQDAjB+MSswKQYDVQQDEyJTcGx1bmsg
3Q2xvdWQgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRYwFAYDVQQHEw1TYW4gRnJhbmNp
4c2NvMRMwEQYDVQQKEwpTcGx1bmsgSW5jMQswCQYDVQQIEwJDQTEVMBMGA1UECxMM
5U3BsdW5rIENsb3VkMB4XDTE0MTExMDA3MDAxOFoXDTM0MTEwNTA3MDAxOFowfjEr
6MCkGA1UEAxMiU3BsdW5rIENsb3VkIENlcnRpZmljYXRlIEF1dGhvcml0eTEWMBQG
7A1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UEChMKU3BsdW5rIEluYzELMAkGA1UE
8CBMCQ0ExFTATBgNVBAsTDFNwbHVuayBDbG91ZDBZMBMGByqGSM49AgEGCCqGSM49
9AwEHA0IABPRRy9i3yQcxgMpvCSsI7Qe6YZMimUHOecPZWaGz5jEfB4+p5wT7dF3e
10QrgjDWshVJZvK6KGO7nDh97GnbVXrTCjEDAOMAwGA1UdEwQFMAMBAf8wCgYIKoZI
11zj0EAwIDSQAwRgIhALMUgLYPtICN9ci/ZOoXeZxUhn3i4wIo2mPKEWX0IcfpAiEA
128Jid6bzwUqAdDZPSOtaEBXV9uRIrNua0Qxl1S55TlWY=
13-----END CERTIFICATE-----

Splunk Enterprise

Splunk Enterprise では証明書のセットがデフォルトで提供されていますが、Fastly ログエンドポイント向けにご自身の証明書を設定することを強くお勧めします。Splunk Enterprise によって提供される証明書には Common Name (CN) のみが指定されているため、証明書を提示する Splunk ホスト ID の確認には適していません。また全ての Splunk Enterprise ダウンロードにおいて同じルート証明書が利用可能であるため、これらの証明書の安全性は高くありません。より優れたセキュリティ体制を維持するためにも、デフォルトの証明書に頼らず、お客様自身の証明書を設定することをお勧めします。Splunk ドキュメントにて独自の証明書を設定するためのガイドをご覧ください。


翻訳についての注意事項
このガイドは役に立ちましたか?

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシー利用規約が適用されます。