すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:リクエストヘッダーとクエリパラメーターのログ記録

最終更新日:Jul 03, 2025

Object Storage Service (OSS) は、基本的な分析のために、アクセスログに標準のフィールドセットを記録します。状況によっては、きめ細かいユーザー行動の追跡と分析を実行したり、情報監視を調整したりするために、カスタムフィールドをログに記録したい場合があります。この場合、監視するリクエストヘッダーとクエリパラメーターを記録するようにカスタムログフィールドを設定できます。カスタムログフィールドは、user_defined_log_fields フィールドに集約されます。

背景情報

HTTP リクエストは、主にリクエストヘッダーとクエリパラメーターによって特徴付けられます。OSS アクセスログは、デフォルトではリクエスト特性の一部のみを記録します。 OSS アクセスログの詳細については、「アクセスログ」をご参照ください。

関心のあるデータを監視するために、リクエストヘッダーとクエリパラメーターも記録するように OSS を設定できます。リクエストヘッダーとクエリパラメーターの詳細については、「RFC 2616」をご参照ください。

シナリオ

  • プロキシ分析:標準の OSS ログは、x-forwarded-for ヘッダーを記録しません。ミドルウェア分析のためにヘッダーを監視する場合は、ヘッダーをログに記録するようにカスタムログフィールドを設定できます。

  • クエリパラメーターに基づくリクエストの分類:標準の OSS ログは、リクエスト URL のクエリパラメーターを記録しません。http://bucketname.aliyuncs.com/hu.jpg?yyy=45&eee=88&rrr=huyanbin URL の rrr や eee などのクエリパラメーターをログに記録する場合は、パラメーターをログに記録するようにカスタムログフィールドを設定できます。

注意事項

  • 各行には、1 つのリクエストヘッダーまたはクエリパラメーターのみが含まれます。合計 6 つのリクエストヘッダーとクエリパラメーターを指定できます。

  • ログ設定情報はエンコードされ、user_defined_log_fields フィールドに入力されます。user_defined_log_fields フィールドの値は、Base64 エンコードされた JSON データです。JSON データには、JSON データが切り捨てられたかどうかを示す "truncated" フィールド、指定されたリクエストヘッダーを含む "headers" フィールド、および指定されたクエリパラメーターを含む "querys" フィールドが含まれます。

  • リクエストヘッダーのカスタムフィールドキーにはハイフン(-)を含めることができますが、アンダースコア(_)を含めることはできません。クエリパラメーターのカスタムフィールドキーにはアンダースコア(_)を含めることができます。

  • リクエストヘッダーのカスタムフィールドキーは HTTP プロトコルに準拠している必要があり、アンダースコア(_)とコロン(:)を除く ASCII 印字可能文字(33 ~ 126)のみを含めることができます。

  • リクエストヘッダーとクエリパラメーターのすべてのカスタムフィールドのキーと値の合計の長さは、1,024 バイトの制限を超えることはできません。制限を超える後続データは切り捨てられます。カスタムログフィールドのキーは、ログでは小文字に変換されます。カスタムログフィールドの値には大文字小文字の変換は適用されません。ログフィールドの値は、リクエストで送信された情報を表し、長さの制限を超えた場合は切り捨てられます。

前提条件

  • バケットでリアルタイムログクエリ機能が有効になっています。詳細については、「リアルタイムログクエリ」をご参照ください。

  • バケットに送信されたリクエストには、関連するリクエストヘッダーまたはクエリパラメーターが含まれています。詳細については、「リクエストの開始」をご参照ください。

方法

OSS コンソールを使用する

  1. OSS コンソールにログオンします。

  2. 左側のナビゲーションウィンドウで、バケットリスト をクリックします。バケットリスト ページで、目的のバケットを見つけてクリックします。

  3. 左側のナビゲーションツリーで、ログ > リアルタイムクエリ を選択します。

  4. リアルタイムクエリ タブで、[ログのリクエストヘッダーまたはクエリパラメーター] の横にある [追加] をクリックします。

  5. [ログのリクエストヘッダーまたはクエリパラメーターの設定] ダイアログボックスで、[ログフィールドの指定] の横にある [追加] をクリックします。

  6. [リクエストヘッダー] または [クエリパラメーター] を選択し、値を入力して、OK をクリックします。

    説明

    カスタムフィールドの設定は 15 分で有効になります。

ossutil を使用する

ossutil を使用して、ログのリクエストヘッダーを設定できます。インストールの詳細については、「ossutil のインストール」をご参照ください。

次のコマンドを実行して、カスタムリクエストヘッダーまたはクエリパラメーターを追加し、user_defined_log_fields フィールドを動的に変更して、examplebucket に関連するリクエストの詳細分析を有効にします。

ossutil api put-user-defined-log-fields-config --bucket examplebucket --user-defined-log-fields-configuration "{\"HeaderSet\":{\"header\":[\"header1\",\"header2\",\"header3\"]},\"ParamSet\":{\"parameter\":[\"param1\",\"param2\"]}}"

関連 API 操作

上記で説明した方法は、基本的に RESTful API に基づいて実装されており、ビジネスで高度なカスタマイズが必要な場合は、直接呼び出すことができます。API を直接呼び出すには、コードに署名計算を含める必要があります。詳細については、「PutUserDefinedLogFieldsConfig」をご参照ください。

参照

カスタムログフィールドに基づいてミドルウェアを分析する