ログストリーミング: FTP
- English
- 日本語
Fastly のリアルタイムログストリーミング機能は、パスワードで保護された匿名の FTP サーバーにログファイルを送信することができます。
Fastly ではサードパーティのサービスに関する直接のサポートは行っておりません。詳細については、Fastly のご利用規約をご覧ください。
FTP をログエンドポイントとして追加する
以下の手順で FTP をログエンドポイントとして追加します。
- Deliver サービス
- Compute サービス
リモートログストリーミングの設定に関するガイドをご確認ください。
- FTP エリアで、Create endpoint をクリックします。
- Create a File Transfer Protocol (FTP) endpoint フィールドには、以下のように記入します。
Name フィールドに分かりやすいエンドポイントの名前を入力します。
Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Default そして None です。詳細については、ログ配置の変更に関するガイドをご覧ください。
Log format フィールドには、ログ形式に使用する Apache 形式の文字列や VCL 変数を任意で入力します。詳細については、形式例のセクションをご覧ください。
(オプション) Timestamp format フィールドに、ログファイルのタイムスタンプ形式を入力します。デフォルトでは
strftime
互換文字列です。詳細については、ログファイルの書き込み先の変更に関するガイドを参照してください。- Address フィールドには、FTP サーバーのホスト名または IP アドレスを入力します。Port フィールドには、FTP に使用するポート番号を入力します (デフォルトは
21
です)。 (オプション) Path フィールドには、ファイルを保存するバケット内のパスを入力します。パスの末尾にスラッシュを付けます。このフィールドを空にすると、ファイルはバケットのルートパスに保存されます。詳細については、ログファイルの書き込み先の変更に関するガイドを参照してください。
- User フィールドには、FTP サーバーへの認証に使用するユーザー名を入力します。匿名でアクセスする場合は、
anonymous
のユーザー名を使用してください。 - Password フィールドに、FTP サーバーへの認証に使用するパスワードを入力します。匿名でアクセスする場合は、パスワードにメールアドレスを使用します。
(オプション) PGP public key フィールドに、Fastly がログファイルをディスクに書き込む前に、ログファイルを暗号化するために使用する PGP 公開鍵を入力します。秘密鍵で復号化することによってのみ、コンテンツを読み取ることができます。PGP 公開鍵は PEM (Privacy-Enhanced Mail) 形式でなければなりません。詳細については、ログの暗号化に関するガイドをご覧ください。
(オプション) Period フィールドに、ログファイルのローテーションの頻度をコントロールするための間隔 (秒単位) を入力します。ローテーションにより、1つのファイルオブジェクトが完了すると、新たなファイルオブジェクトが作成されます。以前に作成されたファイルオブジェクトが削除されることはありません。デフォルトでは
3600
秒に設定されています。
- Advanced options をクリックして、以下のように、フィールドにすべて入力します。
Select a log line format のセクションで、ログメッセージのログライン形式を選択します。詳細については、ログライン形式の変更に関するガイドをご覧ください。
(オプション) Compression フィールドで、ログファイルに適用する圧縮形式を選択します。詳細については、ログ圧縮オプションの変更に関するガイドをご覧ください。
Create をクリックして新規のログエンドポイントを作成します。
Activate をクリックして設定への変更をデプロイします。
フォーマットの例
以下に示すのは、FTP ログエンドポイントにデータを送信する書式指定文字列の例です。書式指定文字列の詳細については、こちらをご覧ください。
{ "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}