リモートログストリーミングの設定
最終更新日 2021-03-17
Fastly のリアルタイムログストリーミング機能を利用して、サードパーティーのストレージやログ分析サービスにログを自動保存できます。ログは接続障害のトラブルシューティングや、パフォーマンスチューニングで設定すべき項目の特定およびサービス障害の原因特定において重要な情報源となります。Fastly サービスの利用を開始する際、リモートログストリーミングを設定することを推奨しています。
Fastly ではサードパーティのサービスに関する直接のサポートは行っておりません。詳細については、Fastly サービスの利用規約をご参照ください。
ストリームログに含める予定のデータに対する設定とエンドポイントの決定を行う際には、セキュリティ、プライバシー、およびコンプライアンスのそれぞれの要件を必ず考慮するようにしてください。
ログエンドポイントの設定
Fastly サービスに対して1つもしくは複数のログエンドポイントを設定できます。ログエンドポイントの設定にアクセスするには、次の手順に従ってください。
- Fastly コントロールパネルにログインします。
- Home ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
-
Logging リンクをクリックします。Logging endpoints 設定画面が表示されます。ログエンドポイントをすでに追加している場合、Create Endpoint ボタンをクリックします。利用可能なログエンドポイントのリストが表示されます。
注意一部のサードパーティーサービスはデフォルトでは無効になっているため、アカウントで有効にするまで、Fastly コントロールパネルに表示されません。これらのサービスを有効化するには、support@fastly.com までお問い合わせください。
- 該当するログエンドポイントガイドの手順に従ってセットアッププロセスを完了し、変更内容をデプロイします。
Activate をクリックして変更をデプロイすると、イベントのログ記録がすぐに開始されます。ログがログサーバーで表示されるまで若干時間を要することがあります。
ログの出力
Fastly ではログ出力をコントロールする2つのバージョンのカスタムログ形式が用意されています。それぞれ Apache スタイルのログディレクティブ を使用します。これらのログ形式で用いられる文字列は Common Log Format (CLF) をベースにしています。
ログは、UDP ではなく TCP でストリーミングされます。オプションとして、サポートされているエンドポイントでのセキュリティに TLS を使用できる場合があります。また、カスタム VCL を使用している場合は、vcl_log
ハンドラに #FASTLY log
マクロが含まれていることを確認してください。
デフォルトでは、ログは YYYY-mm-ddThh:mm:ss-<uid>
のフォーマット で、ルートディレクトリに1時間ごとに出力されます。これらのファイルの出力頻度とパスは設定により変更することができます。詳細については、ログファイルの書き込み先の変更に関するガイドを参照してください。
サービスに対してログエンドポイントを複数設定した場合、ログはすべてのログエンドポイントに送信されます。
Fastly では複数のログ収集サーバーを使用し、それぞれがログファイルを送信しますが、重複したエントリは含まれません。これらのログファイルは、ストリーミングが開始されるとすぐに作成され、指定した期間 (指定がない場合にはデフォルトの期間) ログが書き込まれます。その期間が経過すると、それらのファイルへの書き込みが終了し、ログプロセスによって新たにファイルが作成されます。
ログのエスケープ文字
ログは他のオブジェクトと同様に VCL に応じて処理されます。例えば、以下のコードでは、User-Agent のログから引用符をエスケープできます。
1
log {"syslog serviceid endpointname :: "} {"""} cstr_escape(req.http.user-agent);
カスタム VCL を使用する際の重複したログエントリーの防止
カスタム VCL を使用してログを出力すると、重複したログエントリーが記録されることがあります。これは、Fastly コントロールパネルの設定とカスタム VCL の両方でログが生成されているために発生します。Fastly コントロールパネルの設定によるログエントリーの生成を防止する条件を追加することにより、重複を排除できます。次の手順に従って条件を追加します。
- Logging endpoints ページで、設定したいログサービスの隣にある Attach a condition リンクをクリックします。Add a condition ウィンドウが表示されます。
- Create a new response condition をクリックします。Create a new request condition ウインドウが開きます。
- 以下の要領で Create a new response condition ウインドウの各フィールドに入力します。
- Name フィールドに、 条件を説明する名前を入力します。
- Apply if フィールドに
false
と入力します。 - Priority フィールドの値はデフォルトのままにします。
- Save and apply to をクリックし、 新しい条件を作成します。
- Activate ボタンをクリックして設定変更をデプロイします。
Fastly コントロールパネルによるログの出力が停止され、カスタム VCL により設定したログのみが出力されます。
一般的なログエラーのトラブルシューティング
Fastly コントロールパネルに表示されるエラーが現在アクティブになっているサービスバージョンのログ設定が壊れていることを示唆するものの、依然として部分的にログを受信している場合、エンドポイントのサーバーに接続できない Fastly のログ収集サーバーが存在している可能性があります。この場合、同時接続の最大数に達した可能性があります。ログエンドポイントサーバーの設定で、インバウンド接続の最大数を増やし、数時間後にエラーが解消されたかどうかを確認してください。