ログストリーミング:Loggly

Fastly のリアルタイムログストリーミング機能によって、ログファイルを Loggly に送信することができます。Loggly はエージェントレス型のログ収集および管理ツールです。

前提条件

Loggly のアカウントをお持ちでない場合は、登録してアカウントを作成する必要があります。Loggly Web サイトの登録手順に従ってアカウントを作成してください。

以下の手順で Loggly のカスタマートークンを見つけます。

  1. Loggly ダッシュボードで Source Setup を選択し、Customer Tokens にアクセスします。

    loggly ダッシュボードの Source Setup にある Customer Tokens セクション

  2. Loggly のカスタマートークンをメモしてください。Loggly は、お客様が送信したデータをお客様のアカウントと関連付けるためにこのトークンを使用します。

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

Loggly アカウントを作成し、カスタマートークンを取得した後、以下の手順で Fastly サービスのログエンドポイントとして Loggly を追加します。

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

の形式例

Loggly にデータを送信するための文字列の形式例はこちらです。詳細については、形式文字列に関するガイドをご覧ください。

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
}
Back to Top