ログストリーミング : Coralogix

Fastly の リアルタイムログストリーミング 機能によって Coralogix にログファイルを送信することができます。Coralogix は 動的アラート比率ベースのアラートフローの異常検出、そして 脅威発見機能などで異常な動作を検出できる分析プラットフォームを提供しています。

注意

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

前提条件

まだ Coralogix のアカウントをお持ちでない場合、Coralogix の Web サイトの登録手順に従ってアカウントを登録する必要があります。登録が完了したら、Coralogix のダッシュボードの Settings セクションにある Send Your Logs エリアに移動し、固有の秘密鍵をメモします。この秘密鍵は、お客様が送信したデータをお客様のアカウントと関連付けるために、Coralogix によって使用されます。Fastly でエンドポイントを設定する際に必要となります。

Coralogix をログエンドポイントとして追加

以下の手順で、Coralogix をログエンドポイントとして追加します。

  1. リモートログストリーミングの設定に関するガイドの情報をご参照ください。
  2. HTTPS Create endpoint ボタンをクリックしてください。Create an HTTPS endpoint ページが表示されます。
  3. Create an HTTPS endpoint フィールドに次のように入力します。
    • Name フィールドに分かりやすいエンドポイントの名前を入力します。
    • Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Defaultwaf_debug (waf_debug_log)None です。詳細については、ログ配置の変更に関するガイドをご参照ください。
    • Log format フィールドで、プレースホルダーとして入力されているログ形式を、以下の推奨されるログ形式とフィールド設定に示すように適切に変更してください。
    • URL フィールドに Coralogix の地域 FluentD API URL を入力します。詳細については、Coralogix のドキュメントをご参照ください。たとえば、米国の Coralogix アカウントの地域 FluentD API URL は ですhttps://api.coralogix.us/logs/rest/singles
    • Maximum logs フィールドは、0 (デフォルト) のままにしておきます。
    • Maximum bytes フィールドに、2000000 を入力します。
  4. Create an HTTPS endpoint ページの Advanced options リンクをクリックします。Advanced options が表示されます。
  5. Create an HTTPS endpoint ページの Advanced options に次のように入力します。
    • Content type フィールドに application/json を入力します。
    • Custom header name フィールドに private_key を入力します。
    • Custom header value フィールドに、Coralogix の秘密鍵を入力します。
    • Method コントロールから、POST を選択します。
    • JSON log entry フォーマット コントロールから、Array of JSON を選択します。
    • Select a log line フォーマット コントロールはデフォルトのままにします。
    • 残りのフィールドは空白のままにします。
  6. Create ボタンをクリックすると、新しいログエンドポイントが作成されます。
  7. Activate ボタンをクリックして設定変更をデプロイします。
注意

Coralogixでは、HTTPSドメイン所有権証明の要件を満たすように何も設定する必要はなく、警告を無視しても問題ありません。

推奨されるログ形式とフィールド設定

以下のログ形式を使用します。

1{
2 "timestamp":%{time.start.msec}V,
3 "applicationName":"fastly",
4 "subsystemName":"%{req.service_id}V",
5 "severity": 3,
6 "json": {
7 "time": {
8 "start":"%{begin:%Y-%m-%dT%H:%M:%S%Z}t",
9 "end":"%{end:%Y-%m-%dT%H:%M:%S%Z}t",
10 "elapsed":%D
11 },
12 "cdn_server": {
13 "ip_ipaddr":"%A",
14 "code":"%{server.datacenter}V",
15 "hostname":"%{server.hostname}V",
16 "region_code":"%{server.region}V",
17 "is_cacheable":%{if(fastly_info.state ~"^(HIT|MISS)$", "true", "false")}V,
18 "cache_status":"%{regsub(fastly_info.state, "^(HIT-(SYNTH)|(HITPASS|HIT|MISS|PASS|ERROR|PIPE)).*", "\\2\\3")}V",
19 "is_h2":%{if(fastly_info.is_h2, "true", "false")}V,
20 "is_h2_push":%{if(fastly_info.h2.is_push, "true", "false")}V,
21 "h2_stream_id":"%{fastly_info.h2.stream_id}V"
22 },
23 "client": {
24 "city_name":"%{client.geo.city.utf8}V",
25 "country_code":"%{client.geo.country_code}V",
26 "country_name":"%{client.geo.country_name}V",
27 "continent_code":"%{client.geo.continent_code}V",
28 "region":"%{client.geo.region}V",
29 "ip_ipaddr":"%h",
30 "name":"%{client.as.name}V",
31 "number":"%{client.as.number}V",
32 "connection_speed":"%{client.geo.conn_speed}V",
33 "location_geopoint": {
34 "lat":%{client.geo.latitude}V,
35 "lon":%{client.geo.longitude}V
36 }
37 },
38 "response": {
39 "status":%>s,
40 "content_type":"%{Content-Type}o",
41 "age":"%{Age}o",
42 "cache_control":"%{Cache-Control}o",
43 "expires":"%{Expires}o",
44 "last_modified":"%{Last-Modified}o",
45 "tsv":"%{TSV}o",
46 "header_size":%{resp.header_bytes_written}V,
47 "body_size":%B
48 },
49 "request": {
50 "host":"%{req.http.host}V",
51 "is_ipv6":%{if(req.is_ipv6, "true", "false")}V,
52 "backend":"%{req.backend}V",
53 "service_id":"%{req.service_id}V",
54 "url":"%{cstr_escape(req.url)}V",
55 "url_ext":"%{req.url.ext}V",
56 "header_size":%{req.header_bytes_read}V,
57 "body_size":%{req.body_bytes_read}V,
58 "method":"%m",
59 "protocol":"%H",
60 "referer":"%{Referer}i",
61 "user_agent":"%{User-Agent}i",
62 "accept_content":"%{Accept}i",
63 "accept_language":"%{Accept-Language}i",
64 "accept_encoding":"%{Accept-Encoding}i",
65 "accept_charset":"%{Accept-Charset}i",
66 "connection":"%{Connection}i",
67 "dnt":"%{DNT}i",
68 "forwarded":"%{Forwarded}i",
69 "via":"%{Via}i",
70 "cache_control":"%{Cache-Control}i",
71 "x_requested_with":"%{X-Requested-With}i",
72 "x_att_device_id":"%{X-ATT-Device-Id}i",
73 "x_forwarded_for":"%{X-Forwarded-For}i"
74 },
75 "socket": {
76 "cwnd":%{client.socket.cwnd}V,
77 "pace":%{client.socket.pace}V,
78 "nexthop":"%{client.socket.nexthop}V",
79 "tcpi_rcv_mss":%{client.socket.tcpi_rcv_mss}V,
80 "tcpi_snd_mss":%{client.socket.tcpi_snd_mss}V,
81 "tcpi_rtt":%{client.socket.tcpi_rtt}V,
82 "tcpi_rttvar":%{client.socket.tcpi_rttvar}V,
83 "tcpi_rcv_rtt":%{client.socket.tcpi_rcv_rtt}V,
84 "tcpi_rcv_space":%{client.socket.tcpi_rcv_space}V,
85 "tcpi_last_data_sent":%{client.socket.tcpi_last_data_sent}V,
86 "tcpi_total_retrans":%{client.socket.tcpi_total_retrans}V,
87 "tcpi_delta_retrans":%{client.socket.tcpi_delta_retrans}V,
88 "ploss":%{client.socket.ploss}V
89 }
90 }
91}

以下の推奨形式の最初の5つのフィールドは必須です。

  • timestamp: このフィールドの形式は変更しないでください。

  • applicationName: このフィールドにはアプリケーションの名前を入力してください。

  • subsystemName: このフィールドにサブシステムの名前を入力してください。これは、コンポーネントを分離するために使用されます。例では req.service_id を使用していますが、これは人間可読ではありません。サブシステムを識別するのに分かりやすい、意味のあるサブシステム名を使用してください。

  • severity: 重大度を指定し、以下の選択肢を使用してすべてのログに適用することができます: 1 (デバッグ)、2 (冗長化)、3 (情報)、4 (警告)、5 (エラー)、6 (危機的)。これは後から、後述の抽出ルールを使って変更することができます。

  • json (object): 必要に応じてフィールドを追加または削除してください。静的フィールドを追加することができます。Fastly VCL リファレンス に記載されているフィールドを含む、ネスト化された JSON 形式がサポートされています。

    ネストされた response.status フィールドの指定は、リクエストのサービスを特定するための便利な方法です。Coralogix 解析ルールを使用すると、ログのステータスコード値で Coralogix インターフェイスの重大度フィールドにデータを入力するように JSON 抽出ルールを設定することができます。具体的には、HTTP ステータスコードを重大度の値を自動的にマッピングすることができます。例えば、2xx ステータスコードは Coralogix の深刻度を "INFO" とし、4xx ステータスコードは Coralogix の深刻度を "ERROR" とします。

Coralogix Web コントロールパネルでは、以下のように表示されます :

新しい Coralogix ルールの作成

Coralogix ダッシュボードとアラートの設定

Coralogixは、ダッシュボードやアラートを介して Fastly と自社サービスを統合するためのチュートリアルを提供しています。サービスの概要、ビジターの内訳、サービスの質など、Fastly のデータを使って作成されたデータダッシュボードの例が掲載されています。

チュートリアルでは、Fastly からのログの受信問題、オリジンでの障害、エラー率やキャッシュミスの増加、様々な異常や疑わしいリクエスト、Web サイトの改ざんなどの状況に応じてユーザー定義アラート設定する方法も説明されています。


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

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合はお問い合わせください : support@fastly.com