ログストリーミング : DigitalOcean Spaces

Fastly の リアルタイムログストリーミング 機能は、DigitalOcean Spaces にログファイルを送信することができます。DigitalOcean Spaces は、デベロッパーや IT チームが利用する Amazon S3 互換の静的ファイルストレージサービスです。

前提条件

Fastly サービスのログエンドポイントとして DigitalOcean Spaces を追加する前に、まだお持ちでない場合は DigitalOcean アカウントを作成 する必要があります。次に、DigitalOcean のWeb サイトでプライベートアクセス権限のあるスペースを作成し、シークレットキーとアクセスキー を生成し、エンドポイントをメモする必要があります。

ログエンドポイントとしての DigitalOcean Spaces の追加

DigitalOcean Space を作成した後、以下の手順で DigitalOcean Spaces をログエンドポイントとして追加します。

  1. リモートログストリーミングの設定に関するガイドの情報をご参照ください。
  2. Spaces by DigitalOcean の Create endpoint をクリックします。Create a DigitalOcean エンドポイント作成ページが表示されます。
  3. Create a DigitalOcean endpoint フィールドを以下のように記入します。
    • Name フィールドに分かりやすいエンドポイントの名前を入力します。
    • Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Defaultwaf_debug (waf_debug_log)None です。詳細については、ログ配置の変更に関するガイドをご参照ください。
    • Log format 欄には、ログフォーマットに使用するための Apache 形式の文字列や VCL 変数を任意で入力します。詳細は形式の例のセクションを参照してください。
    • Timestamp format フィールドに、ログファイルのタイムスタンプ形式を任意で入力します。デフォルトは strftime 互換形式の文字列です。詳細については、ログファイルの書き込み先の変更に関するガイドを参照してください。
    • Space name フィールドに、ログを保存する DigitalOcean Space の名前を入力します。
    • Access key フィールドには、DigitalOcean Space に関連するアクセスキーを入力します。詳細については DigitalOcean Spaces の認証ガイド を参照してください。
    • Secret key フィールドには、DigitalOcean Space に関連する秘密鍵を入力します。
    • Period フィールドに、ログファイルのローテーションの頻度をコントロールするための間隔 (秒単位) を任意で入力します。この値はデフォルトで3600秒に設定されています。
  4. Create a DigitalOcean endpoint ページの Advanced options リンクをクリックし、オプションフィールドのうち変更するものがあれば決定します。
  5. Create a DigitalOcean endpoint ページの Advanced options を以下のように記入します。
    • Path フィールドには、ファイルを保存するバケット内のパスを任意で入力します。パスの末尾にはスラッシュが付きます。このフィールドを空にすると、ファイルはバケットのルートパスに保存されます。詳細については、ログファイルの書き込み先の変更に関するガイドを参照してください。
    • Domain フィールドに、ドメインの地域固有のエンドポイントを入力します。ほとんどの場合、これは nyc3.digitaloceanspaces.com でなければなりません。DigitalOcean Space が nyc3 地域に作成されていない場合は、DigitalOcean のドキュメントを参照して、正しいドメインを見つけてください。
    • PGP public key フィールドに、Fastly がディスクに書き込む前にログファイルを暗号化するために使用する PGP 公開鍵を任意で入力します。秘密鍵で復号化することによってのみ、コンテンツを読むことができます。PGP キーは PEM (プライバシー強化メール) 形式でなければなりません。詳細については、ログの暗号化に関するガイドをご覧ください。
    • Select a log line format のセクションで、ログメッセージのログライン形式を選択します。詳細については、ログライン形式の変更に関するガイドをご覧ください。
    • Compression フィールドに、ログファイルに適用する圧縮形式を任意で選択します。ログ圧縮オプションの変更に関するガイドをご参照ください。
  6. Create ボタンをクリックすると、新しいログエンドポイントが作成されます。
  7. Activate ボタンをクリックして設定変更をデプロイします。

の形式例

以下に示すのは、DigitalOcean にデータを送信する書式の例です。書式の詳細については、こちらをご覧ください。

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