ログストリーミング : Cloud Files

Fastly の リアルタイムのログストリーミング 機能は、ログファイルを Cloud Files に送信することができます。Rackspace によって運営される Cloud Files は、開発者や IT チームが利用するファイルストレージサービスです。

注意

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

前提条件

まだ Rackspace Cloud のアカウントをお持ちでない場合、登録が必要です。Rackspace の Web サイトに記載されている手順に従ってください。

Cloud Files のユーザーとコンテナの作成

まず Rackspace のクラウドコントロールパネルから、制限されたアクセス許可を持つ Cloud Files ユーザーを作成します。

  1. Rackspace のクラウドコントロールパネルにログインします。
  2. User account メニューから User Management を選択します。
  3. Create User をクリックし、適切な詳細をすべて入力します。
  4. Product Access セクションで User RoleCustom に設定します。
  5. Product Access リストを確認します。Product 欄のすべての項目に対して Files 項目を除いて、RoleNo Access に設定します。
  6. Files の項目の RoleAdmin に設定します。これにより、ユーザーはログを保存するファイルを作成できますが、他のサービスにアクセスすることができなくなります。

次に、Cloud Files アカウントの API キーを確認します。Cloud Files API を使用して認証するために、後でこれを使用します。

  1. ユーザーアカウントメニューから Account Settings を選択します。
  2. Login detailsで API キーを表示し、キーを書き留めておきます。

Cloud Files ユーザーを作成し、API キーの確認ができたところで、Cloud Files コンテナを設定します。

  1. Storage メニューから Files を選択します。
  2. Create Container をクリックします。
  3. コンテナに Fastly logs - my service のような分かりやすい名前を割り当てます。
  4. 地域を選択し、ファイルを保存し、コンテナがプライベートであることを確認します。
  5. Create Container をクリックします。

Cloud Files のログエンドポイントの追加

Cloud Files のユーザーとコンテナを作成したら、以下の手順に従い Cloud Files をログエンドポイントとして追加します。

  1. リモートログストリーミングの設定に関するガイドをご確認ください。
  2. Rackspace Cloud Files の Create endpoint ボタンをクリックします。 Create a Cloud Files endpoint ページが表示されます。
  3. Create a Cloud Files endpoint フィールドに以下のように記入します。
    • Name フィールドに分かりやすいエンドポイントの名前を入力します。
    • Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Defaultwaf_debug (waf_debug_log)None です。詳細については、ログ配置の変更に関するガイドをご覧ください。
    • Log format フィールドには、ログ形式に使用する Apache 形式の文字列や VCL 変数を任意で入力します。詳細については、形式例のセクションをご覧ください。
    • Timestamp format フィールドに、ログファイルのタイムスタンプ形式を任意で入力します。デフォルトでは strftime 互換文字列です。詳細については、ログファイルの書き込み先の変更に関するガイドをご覧ください。
    • Bucket name フィールドに、ログを保存する Cloud Files コンテナの名前を入力します。
    • User フィールドに、上記で作成した Cloud Files ユーザーのユーザー名を入力します。
    • Access keyフィールドに、Cloud Files アカウントの API キーを入力します。
    • Period フィールドに、ログファイルのローテーションの頻度をコントロールするための間隔 (秒単位) を任意で入力します。ローテーションにより、1つのファイルオブジェクトが完了すると、新たなファイルオブジェクトが作成されます。以前に作成されたファイルオブジェクトが削除されることはありません。デフォルトでは3600秒に設定されています。
    • Regionメニューから、ログの送信先の地域を選択します。
  4. Create a Cloud Files endpoint ページの Advanced options リンクをクリックし、必要に応じてオプションフィールドを変更します。
  5. Create a Cloud Files endpoint ページの Advanced options で以下のように入力します。
    • Path フィールドには、ファイルを保存するバケット内のパスを任意で入力します。パスの末尾にスラッシュを付けます。このフィールドを空にすると、ファイルはバケットのルートパスに保存されます。詳細については、ログファイルの書き込み先の変更に関するガイドをご覧ください。
    • PGP public key フィールドには、ログファイルをディスクに書き込む前に暗号化するために Fastly が使用する PGP 公開鍵を任意で入力します。秘密鍵で復号化することによってのみ、コンテンツを読み取ることができます。PGP 公開鍵は PEM (Privacy-Enhanced Mail) 形式でなければなりません。詳細については、ログの暗号化に関するガイドをご覧ください。
    • Select a log line format のセクションで、ログメッセージのログライン形式を選択します。詳細については、ログライン形式の変更に関するガイドをご覧ください。
    • Compression フィールドに、ログファイルに適用する圧縮形式を任意で選択します。詳細については、ログ圧縮オプションの変更に関するガイドをご覧ください。
  6. Create ボタンをクリックすると、新しいログエンドポイントが作成されます。
  7. Activate ボタンをクリックして設定変更をデプロイします。

の形式例

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

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

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

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください