ログストリーミング:New Relic Logs

Fastly のリアルタイムログストリーミング機能によって、ログファイルを New Relic Logs に送信することができます。

前提条件

Fastly サービスのログエンドポイントとして New Relic Logs を追加する前に、以下が必要です。

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

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

  1. リモートログストリーミングの設定に関するガイドの情報をご参照ください。
  2. New Relic Logs の Create endpoint ボタンをクリックします。Create a New Relic Logs endpoint ページが表示されます。
  3. 以下の要領で Create a New Relic Logs endpoint ページの各フィールドに入力します。
    • Name フィールドに分かりやすいエンドポイントの名前を入力します。
    • Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Defaultwaf_debug (waf_debug_log)None です。詳細については、ログ配置の変更に関するガイドをご参照ください。
    • Log format フィールドに、ログの形式に使用する Apache 形式の文字列や VCL 変数を任意で入力します。詳細については、フォーマットの例をご参照ください。
    • License key / Insert key フィールドに、New Relic のライセンスキーまたは Insert API キーを入力します。
    • Region メニューから、ログの送信先のリージョンを選択します。
  4. Create ボタンをクリックすると、新しいログエンドポイントが作成されます。
  5. Activate ボタンをクリックして設定変更をデプロイします。

フォーマットの例

New Relic Logs に送られるデータは、JSON オブジェクトとして直列化する必要があります。以下は New Relic Logs にデータを送信するための文字列の形式例です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "timestamp": "%{strftime(\{"%Y-%m-%dT%H:%M:%S%z"\}, time.start)}V",
  "client_ip": "%{req.http.Fastly-Client-IP}V",
  "geo_country": "%{client.geo.country_name}V",
  "geo_city": "%{client.geo.city}V",
  "host": "%{if(req.http.Fastly-Orig-Host, req.http.Fastly-Orig-Host, req.http.Host)}V",
  "url": "%{json.escape(req.url)}V",
  "request_method": "%{json.escape(req.method)}V",
  "request_protocol": "%{json.escape(req.proto)}V",
  "request_referer": "%{json.escape(req.http.referer)}V",
  "request_user_agent": "%{json.escape(req.http.User-Agent)}V",
  "response_state": "%{json.escape(fastly_info.state)}V",
  "response_status": %{resp.status}V,
  "response_reason": %{if(resp.response, "%22"+json.escape(resp.response)+"%22", "null")}V,
  "response_body_size": %{resp.body_bytes_written}V,
  "fastly_server": "%{json.escape(server.identity)}V",
  "fastly_is_edge": %{if(fastly.ff.visits_this_service == 0, "true", "false")}V
}

タイムスタンプをログに記録する

Fastly のログにタイムスタンプフィールドがある場合、エポックからのミリ秒または秒数として指定し、New Relic のタイムスタンプをオーバーライドする必要があります。含まれていない場合は、Fastly によってタイムスタンプが生成されます。

Back to Top