Simple Log Service(SLS)が提供するリアルタイムログクエリ機能を使用することで、Object Storage Service(OSS)のアクセスログと時間単位の測定ログを分析できます。 これにより、OSS の使用状況をタイムリーに監視および最適化し、問題を特定して分析し、データストレージとアクセスの効率を向上させることができます。 このトピックでは、リアルタイムログクエリの一般的な例について説明します。
OSS ディレクトリ内のオブジェクトの送信インターネットトラフィックを分析する
OSS 使用状況クエリを使用して、ディレクトリ内のオブジェクトの送信インターネットトラフィックを表示することはできません。 OSS アクセスログの host
フィールドを使用してインターネットエンドポイントをクエリし、sync_request
フィールドを使用して Alibaba Cloud Content Delivery Network(CDN)の原点復帰リクエストを除外し、object
フィールドのプレフィックスをディレクトリ内のオブジェクトと一致させ、content_length_out
フィールドの合計を計算します。 これにより、特定のディレクトリの送信インターネットトラフィックの合計を取得できます。
クエリ文
次のコードは、examplebucket
バケットの exampledir
ディレクトリ内のオブジェクトの送信インターネットトラフィックを計算するために使用されるクエリ文を示しています。
* and __topic__ : oss_access_log and bucket: examplebucket and host : "examplebucket.oss-cn-hangzhou.aliyuncs.com" not sync_request : cdn | select
SUM(content_length_out) AS total_traffic_out_byte
WHERE
url_decode(object) LIKE 'exampledir/%'
クエリ結果
リクエスト内の host
フィールドは偽造される可能性があります。 次のクエリ結果は推定値であり、課金の基準として使用することはできません。 OSS 送信インターネットトラフィックの実際の請求が優先されます。
クエリ結果は、examplebucket
の exampledir
ディレクトリ内のオブジェクトの送信インターネットトラフィックの合計が 11,749 バイトであることを示しています。
OSS ディレクトリ内のオブジェクトの変更サイズを分析する
OSS 使用状況クエリを使用すると、OSS バケット内のオブジェクトの合計変更サイズを表示できますが、ディレクトリ内のオブジェクトの合計変更サイズを表示することはできません。 OSS ディレクトリ内のオブジェクトの合計変更サイズを分析するには、OSS アクセスログの object フィールドのプレフィックスを一致させて、OSS ディレクトリ内のオブジェクトの統計を収集し、delta_data_size
フィールドの合計を計算します。 これにより、ディレクトリ内のオブジェクトの合計変更サイズを取得できます。
クエリ文
次のコードは、examplebucket
の exampledir
ディレクトリ内のオブジェクトの合計変更サイズを計算するために使用されるクエリ文を示しています。
* and __topic__ : oss_access_log and bucket: examplebucket | select
SUM(delta_data_size) AS total_delta_data_size
WHERE
url_decode(object) LIKE 'exampledir/%'
クエリ結果
クエリ結果は、examplebucket
の exampledir
ディレクトリ内のオブジェクトの合計サイズが 941 バイト増加したことを示しています。
CDN によって高速化されていない OSS インターネットリクエストを分析する
CDN アクセラレーションを有効にした後も、依然として大量の OSS インターネットリクエストが表示される場合、ビジネスで参照されるリソースの URL は、CDN アクセラレーションエンドポイントではなく、依然として OSS オリジンサーバーを指しています。 CDN によって高速化されていないインターネットリクエストを特定するには、OSS アクセスログの host
フィールドを使用して OSS インターネットエンドポイントをフィルタリングし、sync_request
フィールドを使用して CDN 原点復帰リクエストを除外します。 また、referer
フィールドに基づいて、これらのリクエストが送信された Web ページまたはアプリケーションを特定することもできます。
クエリ文
次のコードは、examplebucket
で CDN によって高速化されていない OSS インターネットリクエストを分析するために使用されるクエリ文を示しています。
* and __topic__: oss_access_log and bucket: examplebucket and host : "examplebucket.oss-cn-hangzhou.aliyuncs.com" not sync_request: cdn | select
referer,
host,
count(*) as request_count
group by
referer,
host
order by request_count desc
クエリ結果
リクエスト内の host
フィールドは偽造される可能性があります。 次のクエリ結果は推定値であり、課金の基準として使用することはできません。 OSS 送信インターネットトラフィックの実際の請求が優先されます。
クエリ結果は、examplebucket
バケットで CDN によって高速化されていない OSS インターネットリクエストの上位 3 つのソースが、Referer フィールドが空になっているリクエストと、ドメイン名が .com
または .vip
で終わる Web サイトからのリクエストであることを示しています。 ブラウザのアドレスバーに URL を入力すると、リクエストの Referer フィールドが空になる場合があります。