ログストリーミング: SFTP

Fastly のリアルタイムログストリーミング機能では、Secure Shell (SSH) プロトコルのセキュアファイル転送サブシステム SFTP にログファイルを送信することができます。Fastly の SFTP エンドポイントは、パスワードベースの認証と SSH の公開鍵認証の両方をサポートしていますが、SSH の公開鍵認証の方が優先されます。SSH の公開鍵認証についての詳細や、公開鍵と秘密鍵のペアを生成する方法についてはこちらのガイドをご覧ください。

注意

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

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

以下の手順で SFTP をログエンドポイントとして追加します。

  1. 配信サービス
  2. Compute サービス
  1. リモートログストリーミングの設定に関するガイドをご確認ください。
  2. SFTP エリアで、Create endpoint をクリックします。

  3. 以下の要領で Create an SSH File Transfer Protocol (SFTP) endpoint ページの各フィールドに入力します。

    • Name フィールドに分かりやすいエンドポイントの名前を入力します。
    • Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Defaultwaf_debug (waf_debug_log)None です。詳細については、ログ配置の変更に関するガイドをご覧ください。
    • Log format フィールドには、ログ形式に使用する Apache 形式の文字列や VCL 変数を任意で入力します。詳細については、形式例のセクションをご覧ください。
    • (オプション) Timestamp format フィールドに、ログファイルのタイムスタンプ形式を入力します。デフォルトでは strftime 互換文字列です。詳細については、ログファイルの書き込み先の変更に関するガイドを参照してください。
    • Address フィールドに SFTP サーバーのホスト名または IP アドレスを入力します。コロンの後のポートフィールドには、SFTP に使用するポート番号を入力します (デフォルトは 22)。
    • Path フィールドにログファイルを保存するためのパスを入力します。このフィールドをデフォルトの / のままにしておくと、ファイルはルートパスに保存されます。この変数については、ログ ファイルの書き込み先の変更に関するガイドで詳しく説明しています。
    ヒント

    SFTP サーバーにログを保存する場合は、そのディレクトリーがすでに存在していることをご確認ください。

    • User フィールドに SFTP サーバーへの認証に使用するユーザー名を入力します。
    • Known hosts フィールドには SFTP で接続できる各ホストのホストキーを入力します。各ホストキーは、それぞれ別の行に入力してください。既知のホストエントリーは、ホームディレクトリにある known_hostsファイルに保存されているものと一致する必要があります (macOS または Windows オペレーティングシステムを使用している場合、ローカルアカウント設定)。既知のホストエントリーは以下のようになります。

    1.2.3.4 ecdsa-sha2-nistp256 aBc123xYz…

    1.2.3.4 は SFTP の IP アドレス、ecdsa-sha2-nistp256 はホストキーアルゴリズム、aBc123xYz… は公開鍵を示しています。

    • Secret key フィールドには、サーバーへの接続に使用する SSH の秘密鍵を入力します。秘密鍵とパスワードの両方を入力した場合は、秘密鍵が優先的に使用されます。
    • Password フィールドには、SFTP サーバーへの認証に使用するパスワードを入力します。パスワード と 秘密鍵の両方を入力した場合は、秘密鍵が優先的に使用されます。
    • (オプション) Period フィールドに、ログファイルのローテーションの頻度をコントロールするための間隔 (秒単位) を入力します。ローテーションにより、1つのファイルオブジェクトが完了すると、新たなファイルオブジェクトが作成されます。以前に作成されたファイルオブジェクトが削除されることはありません。デフォルトでは3600秒に設定されています。
  4. Advanced options をクリックして、以下のように、フィールドにすべて入力します。

    • Select a log line format のセクションで、ログメッセージのログライン形式を選択します。詳細については、ログライン形式の変更に関するガイドをご覧ください。
    • (オプション) PGP public key フィールドに、Fastly がログファイルをディスクに書き込む前に、ログファイルを暗号化するために使用する PGP 公開鍵を入力します。秘密鍵で復号化することによってのみ、コンテンツを読み取ることができます。PGP 公開鍵は PEM (Privacy-Enhanced Mail) 形式でなければなりません。詳細については、ログの暗号化に関するガイドをご覧ください。
    • (オプション) Compression フィールドで、ログファイルに適用する圧縮形式を選択します。詳細については、ログ圧縮オプションの変更に関するガイドをご覧ください。
  5. Create をクリックして新規のログエンドポイントを作成します。
  6. Activate をクリックして設定への変更をデプロイします。

形式例

以下に示すのは、SFTP ログエンドポイントにデータを送信する書式の例です。形式の詳細については、こちらをご覧ください。

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}

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

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシー利用規約が適用されます。