ログストリーミング:Wasabi Hot Cloud Storage

Fastly のリアルタイムログストリーミング機能は、Wasabi の S3 Compatibility API 接続オプションを使用して、Wasabi Hot Cloud Storage にログファイルを送信することができます。Wasabi Hot Cloud Storage は、開発者や IT チームによって使用される静的ファイルストレージサービスです。

前提条件

Fastly サービスのログエンドポイントとして Wasabi Hot Cloud Storage を追加する前に、バケットに対する読み取りと書き込みの権限を持つ Access Key を作成することをお勧めします。

Wasabi Hot Cloud Storage をログエンドポイントとして追加する

Wasabi Hot Cloud Storage のアカウントを登録し、Access Key を作成した後、以下の手順で Wasabi Hot Cloud Storage をログエンドポイントとして追加します。

  1. リモートログストリーミングの設定に関するガイドの情報をご参照ください。
  2. Amazon Web Services S3 のロゴをクリックします。Create an Amazon S3 endpoint ページが表示されます。
  3. 以下の要領で Create an Amazon S3 endpoint ページの各フィールドに入力します。
    • Name フィールドに分かりやすいエンドポイントの名前を入力します。
    • Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Defaultwaf_debug (waf_debug_log)None です。詳細については、ログ配置の変更に関するガイドをご参照ください。
    • Log format フィールドに、ログの形式に使用する Apache 形式の文字列や VCL 変数を任意で入力します。詳細については、フォーマットの例をご参照ください。
    • Timestamp format フィールドに、ログファイルのタイムスタンプ形式を任意で入力します。デフォルトは strftime 互換形式の文字列です。詳細については、ログファイルの書き込み先の変更に関するガイドをご参照ください。
    • Bucket name フィールドに、ログを保存する Wasabi Hot Cloud Storage のバケット名を入力します。
    • Access method のセクションで User Credentials を選択します。
    • Access key フィールドには、Wasabi アカウントに関連付けられたアクセスキーを入力します。詳細については Wasabi の Access Key に関するガイドをご覧ください。
    • Secret key フィールドに、Wasabi アカウントに関連付けられたシークレットキーを入力します。詳細については Wasabi の Access Key に関するガイドをご覧ください。
    • Period フィールドに、ログファイルのローテーションの頻度をコントロールするための間隔 (秒単位) を任意で入力します。この値はデフォルトで3600秒に設定されています。
  4. Create a new S3 endpoint ページの Advanced options をクリックします。
  5. Create an Amazon S3 endpoint ページの Advanced options の残りの部分を以下のように入力します。
    • Path フィールドには、ファイルを保存するバケット内のパスを任意で入力します。パスの末尾にはスラッシュが付きます。このフィールドを空にすると、ファイルはバケットのルートパスに保存されます。詳細については、ログファイルの書き込み先の変更に関するガイドをご参照ください。
    • Domain フィールドに s3.wasabisys.com と入力します。
    • PGP public key フィールドに、Fastly がディスクに書き込む前にログファイルを暗号化するために使用する PGP 公開鍵を任意で入力します。お客様は、秘密鍵で復号化することによってのみ、コンテンツを読むことができます。PGP キーは PEM (プライバシー強化メール) 形式でなければなりません。詳細については、ログの暗号化に関するガイドをご参照ください。
    • Select a log line format のセクションで、ログメッセージのログライン形式を選択します。詳細については、ログライン形式の変更に関するガイドをご覧ください。
    • Compression フィールドに、ログファイルに適用する圧縮形式を任意で選択します。詳細については、ログ圧縮オプションの変更に関するガイドをご参照ください。
    • Redundancy level のオプションは、Wasabi が提供するストレージクラスが1つのみで、AWS S3 の標準ストレージクラスとほとんど変わらないため、有用ではありません。Wasabi の オブジェクトのストレージクラスに関するドキュメント には、冗長性の低いストレージの使用に関する詳細が記載されています。
    • Server side encryption のセクションでは、Fastly が Wasabi Hot Cloud Storage のバケットに書き込むファイルを保護するための暗号化方法を任意で選択します。有効な値は None または AES-256 です。詳細については、この機能に関する Wasabi のガイドをご参照ください。鍵管理サービスがサポートされていないことを除けば、この機能は Amazon の実装と機能的には同じです。
  6. Create ボタンをクリックすると、新しいログエンドポイントが作成されます。
  7. Activate ボタンをクリックして設定変更をデプロイします。

の形式例

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

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