edit-icon download-icon

サーバーアクセスログ

最終更新日: Jul 10, 2018

OSS では、サーバーアクセスログの自動保存機能が用意されています。バケットのオーナーは、OSS コンソールにログインし、すべてのオーナーのバケットに対してサーバーアクセスログ機能を有効にすることができます。バケット (ソースバケット) でアクセスログが有効化されると、OSS は、そのバケットのすべてのアクセスリクエストログを格納するオブジェクトを (1 時間単位で) 生成し、一定の命名規則に従って、ユーザー指定のバケット (ターゲットバケット) にオブジェクトを書き込みます。

アクセスログのオブジェクト命名規則

  1. <TargetPrefix><SourceBucket>-YYYY-mm-DD-HH-MM-SS-UniqueString

この命名規則では、TargetPrefix はユーザーが指定します。YYYY、mm、DD、HH、MM、SS には、作成日時の年、月、日、時、分、秒がアラビア数字で設定されます (桁数に注意してください)。UniqueString は、OSS システムによって生成される文字列です。OSS アクセスログの格納に使用されるオブジェクトの名前の実例を以下に示します。

  1. MyLog-oss-example-2012-09-10-04-00-00-0000

上の例では、”MyLog-“ はユーザーが指定したオブジェクトプレフィックス、”oss-example” はオリジンバケットの名前、”2012-09-10-04-00-00” はオブジェクトの作成日時 (北京現地時間)、”0000” は OSS システムによって生成された文字列です。

ログファイルの形式

(左から右にスペースで区切られます):

名前 説明
Remote IP 119.140.142.11 リクエストが開始された IP アドレス (このフィールドは、プロキシやユーザーファイアウォールによってブロックされる場合があります)
Time [02/May/2012:00:00:04 +0800] OSS がリクエストを受信した日時
Request-URI “GET /aliyun-logo.png HTTP/1.1” ユーザーがリクエストした URI (クエリ文字列を含む)
HTTP Status 200 OSS から返された HTTP ステータスコード
SentBytes 5576 ユーザーが OSS からダウンロードしたトラフィック
RequestTime (ms) 71 このリクエストが完了するまでにかかった時間 (単位はミリ秒)
Referer http://www.aliyun.com/product/oss リクエストされた HTTP リファラー
User-Agent curl/7.15.5 HTTP User-Agent ヘッダー
HostName oss-example.oss-cn-hangzhou.aliyuncs.com アクセスリクエストのドメイン名
Request ID 505B01695037C2AF032593A4 このリクエストを一意に識別するために使用される UUID
LoggingFlag true アクセスログ機能が有効かどうか
Requester Alibaba Cloud ID 1657136103983691 リクエスト送信者の Alibaba Cloud ID (匿名アクセスの場合は “-“)
Operation GetObject リクエストタイプ
Bucket oss-example アクセスをリクエストされたバケットの名前
Key /aliyun-logo.png ユーザーがリクエストしたキー
ObjectSize 5576 オブジェクトサイズ
Server Cost Time (ms) 17 OSS サーバーがこのリクエストの処理に費やした時間 (単位はミリ秒)
Error Code NoSuchBucket OSS から返されたエラーコード
Request Length 302 ユーザーリクエストの長さ (バイト)
UserID 1657136103983691 バケットオーナーの ID
Delta DataSize 280 バケットサイズの変動 (変動がない場合は “-“)
Sync Request - CND からの Back-To-Source リクエストかどうかを示す。そうでない場合は “-“
Reserved - 予約フィールド

詳細分析

  • ソースバケットとターゲットバケットは同じデータセンターと同じユーザーに属している必要があります。

  • TargetPrefix は、アクセスログの格納に使用するオブジェクトの名前のプレフィックスを示します。このフィールドは空白のままにできます。

  • ソースバケットとターゲットバケットは、同じバケットでも別のバケットでもかまいません (全てのバケットは同じリージョンであることが必須となります)。複数のソースバケットのログを同じターゲットバケットに保存できます (この場合は、TargetPrefix に別の値に割り当てるすることをお勧めします)。

  • バケットアクセスログファイルは 1 時間ごとに生成されますが、 その時間内のすべてのリクエストがログファイルに記録されるとは限りません。前のログファイルや次のログファイルに記録される場合もあります。

  • OSS によって生成されるログファイルの命名規則の “UniqueString” は、OSS がオブジェクトを一意に識別するために生成する UUID です。

  • バケットアクセスログファイルが生成されるたびに、この操作は PUT 操作として見なされ、占有スペースが記録されますが、生成されたトラフィックは記録されません。生成されたログファイルは、通常のオブジェクトとして操作できます。

  • “x-“ というプレフィックスが付いたクエリ文字列パラメーターは、OSS ではすべて無視されますが、アクセスログには記録されます。大量のアクセスログで特定のリクエストにマークを付けるには、”x-“ というプレフィックスが付いたクエリ文字列パラメーターを URL に追加できます。例:
    http://oss-example.oss-cn-hangzhou.aliyuncs.com/aliyun-logo.png
    http://oss-example.oss-cn-hangzhou.aliyuncs.com/aliyun-logo.png?x-user=admin
    上の 2 つのリクエストは、OSS の処理結果は同じですが、 アクセスログで “x-user=admin” を検索すると、マークを付けたリクエストをすばやく見つけることができます。

  • OSS ログのフィールドの値が “-“ になっている場合があります。これは、データが不明であるか、そのフィールドが現在のリクエストに対して無効であることを示します。将来的に、OSS ログファイルの末尾に必要に応じてフィールドが追加されます。ログ処理ツールを開発する際には、互換性の問題を考慮に入れることをお勧めします。

機能の使用方法のリファレンス: