ログストリーミング: Oracle Cloud Storage

Fastly のリアルタイムログストリーミング機能は、Oracle Cloud の S3 Compatibility API の接続オプションを使用して、Oracle Cloud Storage にログファイルを送信することができます。Oracle Cloud Storage は開発者や IT チームによって使用される静的ファイルストレージサービスです。

Fastly ではサードパーティのサービスに関する設定等のサポートは行っておりません。詳細は Fastly's Terms of Service をご参照ください。

前提条件

Oracle Cloud Storage を Fastly サービスのログエンドポイントとして追加する前に、Access KeySecret Key で構成される Oracle の Customer Secret Key が必要です。これらには、バケットに対する読み取りと書き込みの許可が必要です。

また、バケットに割り当てられている名前空間識別子も必要です。バケットをクリックして Bucket Information タブで名前空間を見つけることができます (以下の例では decafbaddeadbeef)。

Oracle Cloud Storage バケットの詳細

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

このログエンドポイントは Fastly の Deliver サービス (VCL ベース) でのみご利用いただけます。Compute サービスではご利用いただけません。

Oracle Cloud Storage のアカウントを登録して Access Key を作成した後、以下の手順に従って Oracle Cloud Storage をログエンドポイントとして追加します。

  1. Deliver サービス
  1. リモートログストリーミングの設定に関するガイドの情報をご確認ください。

  2. Amazon Web Services S3 のロゴをクリックします。
  3. 以下の要領で Create an Amazon S3 endpoint ページの各フィールドに入力します。
    • Name フィールドに、エンドポイントの分かりやすい名前を入力します。

    • Placement エリアで、生成された VCL のどこにログコールを配置するかを選択します。有効な値は、形式のバージョンのデフォルトなしです。詳細については、ログの配置の変更に関するガイドをご覧ください。

    • Log format フィールドに、オプションでログフォーマットに使用するための Apache 形式の文字列や VCL 変数を入力します。詳細はフォーマットの例のセクションを参照してください。

    • (オプション) タイムスタンプ形式フィールドに、ログファイル用のタイムスタンプ形式を入力します。デフォルトは strftime と互換性のある文字列です。詳細については、ログファイルの書き込み先の変更に関するガイドを参照してください。

    • Access method のセクションで User Credentials を選択します。
    • Bucket name フィールドに、ログを保存する Oracle Cloud Storage のバケット名を入力します。
    • Access key フィールドに、Oracle アカウントに関連付けられたアクセスキーを入力します。
    • Secret key フィールドに、Oracle アカウントに関連付けられた秘密鍵を入力します。
    • (オプション) Period フィールドに、ログファイルのローテーションの頻度をコントロールするための間隔 (秒単位) を入力します。ローテーションでは、1つのファイルオブジェクトが終了し、新しいファイルオブジェクトが開始されますが、以前に作成されたファイルオブジェクトは削除されません。この値は、デフォルトでは3600秒です。

  4. Create a new S3 endpoint エリアで、Advanced options をクリックします。
  5. Advanced options の残りの部分に以下のように入力します。
    • (オプション) Path フィールドに、ファイルを保存するバケット内のパスを入力します。パスの末尾はスラッシュとなります。このフィールドを空白のままにすると、ファイルはバケットのルートパスに保存されます。詳細については、ログファイルの書き込み先の変更に関するガイドを参照してください。

    • Domain フィールドに <namespace>.compat.objectstorage.<region>.oraclecloud.com と入力します。
    • (オプション) PGP 公開鍵フィールドに、Fastly がディスクに書き込む前にログファイルを暗号化するために使用する PGP 公開鍵を入力してください。コンテンツを読むには、秘密鍵で復号化する必要があります。PGP キーは PEM (プライバシー強化メール) 形式である必要があります。詳細については、ログの暗号化に関するガイドをご覧ください。

    • Select a log line format」エリアで、ログメッセージのログ行形式を選択します。詳細については、ログ行形式の変更に関するガイドをご覧ください。

    • (オプション) [圧縮]フィールドで、ログファイルに適用する圧縮形式を選択してください。ログ圧縮オプションの変更に関するガイドには、さらに詳しい情報があります。

    • Redundancy level メニューから、設定を選択します。有効な値は Standard および Infrequent Access です。デフォルトでは Standard に設定されています。
    • (オプション) Server side encryption のエリアには、Fastly が Oracle Cloud Storage バケットに書き込むファイルを保護するための暗号化メソッドを選択します。有効な値は None または AES-256 です。詳細については、この機能に関する Oracle のガイドをご参照ください。鍵管理サービスがサポートされていないことを除けば、この機能は Amazon の実装と機能的には同じです。
  6. Create をクリックして、新しいログ記録エンドポイントを作成します。

  7. Activate メニューから、Activate on Production を選択して、設定の変更をデプロイします。

Fastly は Oracle Cloud にログを継続的にストリーミングしていますが、Oracle Cloud の Web サイトおよび API からは、アップロードが完了するまでファイルにアクセスできません。

フォーマットの例

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

{
"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
}