リモートログストリーミングの設定 

Fastly のリアルタイムログストリーミングでは、サードパーティーのストレージや分析サービス向けにログの自動保存ができます。ログは接続の問題についてのトラブルシューティングや、パフォーマンスチューニングのために設定すべき項目の特定、サービス障害の原因特定の際の重要な情報源となります。Fastly サービスの利用を開始する際、リモートログストリーミングを設定することを推奨しています。

設定前の注意点

リモートログストリーミングを設定する前に、以下の点に注意してください:

  • サードパーティのログエンドポイントはデフォルトで無効になっているため、アカウントで有効になるまで Fastly コントロールパネルには表示されません。これらのサービスを有効化するには、support@fastly.com までお問い合わせください。
  • ログプロバイダ配信形式と、その配信内容を再確認してください。プロバイダーには、許可する形式に必要な厳格なフォーマット要件 (JSON など) があります。

ログエンドポイントの設定

Fastly サービスに対して1つもしくは複数のログエンドポイントを設定することができます。ログエンドポイントの設定にアクセスするには、次の手順に従ってください。

  1. Fastly コントロールパネルにログインします。
  2. Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインでの検索が行えます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Logging リンクをクリックします。Logging endpoints 設定画面が表示されます。ログエンドポイントをすでに追加している場合、Create Endpoint  ボタンをクリックします。利用可能なログエンドポイントのリストが表示されます。

    ログエンドポイントページ

  5. 該当するエンドポイントのログ取得ガイドの手順に従ってセットアッププロセスを完了し、変更内容をデプロイします。

Activate をクリックして変更をデプロイすると、ログはすぐに記録開始されます。ログがログサーバーで表示されるまで若干時間を要することがあります。

ログの出力

Fastly では、ログ出力を制御した2つのバージョンのカスタマイズされたログ形式を用意しています。それぞれ Apache スタイルのログディレクティブを使っています。これらカスタマイズ版のログ形式で用いられる文字列は Common Log Format (CLF) をベースにしています。

ログは、UDP ではなく TCP でストリーミングされます。オプションとして、サポートされているエンドポイントでのセキュリティに TLS を使用できる場合があります。また、カスタム VCL を使用している場合には、ハンドラに#FASTLY logマクロvcl_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 の両方でログが生成されているために発生します。以下の手順に従って、重複したエントリーを排除することができます:

  1. ログエンドポイントページで、編集したいログエンドポイントの名前をクリックします。Edit this endpoint ページが表示されます。
  2. Placement コントロールから、None を選択します。

    ログの圧縮オプション

  3. Update ボタンをクリックします。
  4. Activate ボタンをクリックして設定変更をデプロイします。

Fastly コントロールパネルによるログの出力が停止され、カスタム VCL により設定したログのみが出力されます。

一般的なログエラーのトラブルシューティング

Fastly コントロールパネルにログ設定でエラーが表示されます。logging_statusAPIエ ンドポイントを使用して、サービスのログ設定の問題をトラブルシューティングすることもできます。

1
2
$ curl -sg -H "Fastly-Key:$token" \
  "https://api.fastly.com/service/:SERVICE_ID/logging_status"

出力によって、Fastly がエラーを検出したかどうかを示します。BrokenNowfalse に設定されている場合は、Fastly はログ設定の問題を検出していません。

1
{"1234567890ABCDEF/my-service":{"LastErrorTime":null,"LastError":null,"BrokenNow":false}}

Fastly コントロールパネルに表示されるエラーが現在アクティブになっているサービスバージョンのログ設定が壊れていることを示唆するものの、依然として部分的にログを受信している場合、エンドポイントのサーバーに接続できない Fastly のログ収集サーバーが存在している可能性があります。この場合、同時接続の最大数に達した可能性があります。ログエンドポイントサーバーの設定で、インバウンド接続の最大数を増やし、数時間後にエラーが解消されたかどうかを確認してください。

Back to Top