OSS では、サーバーアクセスログの自動保存機能が用意されています。バケットのオーナーは、OSS コンソールにログインし、すべてのオーナーのバケットに対してサーバーアクセスログ機能を有効にすることができます。バケット (ソースバケット) でアクセスログが有効化されると、OSS は、そのバケットのすべてのアクセスリクエストログを格納するオブジェクトを (1 時間単位で) 生成し、一定の命名規則に従って、ユーザー指定のバケット (ターゲットバケット) にオブジェクトを書き込みます。
アクセスログのオブジェクト命名規則
<TargetPrefix><SourceBucket>-YYYY-mm-DD-HH-MM-SS-UniqueString
この命名規則では、TargetPrefix はユーザーが指定します。YYYY、mm、DD、HH、MM、SS には、作成日時の年、月、日、時、分、秒がアラビア数字で設定されます (桁数に注意してください)。UniqueString は、OSS システムによって生成される文字列です。OSS アクセスログの格納に使用されるオブジェクトの名前の実例を以下に示します。
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 ログファイルの末尾に必要に応じてフィールドが追加されます。ログ処理ツールを開発する際には、互換性の問題を考慮に入れることをお勧めします。
機能の使用方法のリファレンス: