Simple Log Service では、データ変換ジョブを使用して、複数のソース Logstore のデータを 1 つの Logstore に統合できます。このトピックでは、典型的なユースケースと必要な手順について説明します。
背景情報
グローバルに分散したサービスを持つニュースサイトが、複数の Alibaba Cloud アカウントにまたがる Logstore に、さまざまなニュースチャンネルからのユーザーアクセスログを保存しているとします。このログデータを 1 つの Logstore に統合して一元的にクエリと分析を行うには、データ変換ジョブの e_output 関数を使用します。
このトピックでは、同じリージョンである イギリス (ロンドン) にある異なる Logstore からログを統合する例を示します。次のセクションで、これらのログについて説明します。
-
アカウント 1 は、イギリス (ロンドン) リージョンの Project_1 にある LogStore_1 に生ログを保存します。
"Log 1" request_id: 1 http_host: example.com http_status: 200 request_method: GET request_uri: /pic/icon.jpg "Log 2" request_id: 2 http_host: aliyundoc.com http_status: 301 request_method: POST request_uri: /data/data.php -
アカウント 2 は、イギリス (ロンドン) リージョンの Project_2 にある LogStore_2 にログを保存します。
"Log 1" request_id: 3 host: example.edu status: 404 request_method: GET request_uri: /category/abc/product_id "Log 2" request_id: 4 host: example.net status: 200 request_method: GET request_uri: /data/index.html -
変換要件
-
アカウント 1 の LogStore_1 から
http_statusが200のログイベントをアカウント 3 の LogStore_3 にエクスポートします。 -
アカウント 2 の LogStore_2 からのログイベントのうち、
statusが200のものについて、hostをhttp_hostに、statusをhttp_statusにリネームして LogStore_1 のフィールド名と一致させます。その後、変換されたログをアカウント 3 の LogStore_3 にエクスポートします。
-
ステップ 1:LogStore_1 の変換設定
-
アカウント 1 の LogStore_1 のデータ変換ページに移動します。詳細な手順については、「データ変換ジョブの作成」をご参照ください。
-
データ変換ページで、次のルールを設定して、アカウント 1 の LogStore_1 から
http_statusが200のログイベントをアカウント 3 の LogStore_3 にエクスポートします。e_if(e_match("http_status", "200"), e_output("target_logstore")) -
データ変換ジョブを作成し、ストレージターゲット セクションで ストレージターゲット、ターゲット名、Destination Region、ターゲットプロジェクト、対象 Logstore などのパラメーターを設定します。権限付与メソッドのパラメーターの説明については、「データ変換ジョブの作成」をご参照ください。
[宛先名] に
target_logstoreを設定します。[宛先リージョン] で イギリス (ロンドン) を選択します。[宛先プロジェクト] にProject_3を入力します。[ターゲットストア] にLogStore_3を入力します。[権限付与方法] で AccessKey を選択し、AccessKey ID と AccessKey Secret を入力して、[追加] をクリックします。
ステップ 2:LogStore_2 の変換設定
-
アカウント 2 の LogStore_2 のデータ変換ページに移動します。詳細な手順については、「データ変換ジョブの作成」をご参照ください。
-
データ変換ページで、次のルールを設定します。このルールは、LogStore_2 からのログのうち
statusが200のものを処理します。hostをhttp_hostに、statusをhttp_statusにリネームして LogStore_1 のフィールド名と一致させ、変換されたログをアカウント 3 の LogStore_3 にエクスポートします。e_if(e_match("status", "200"), e_compose(e_rename("status", "http_status", "host", "http_host"), e_output("target_logstore")))プレビュー結果では、フィールドが期待どおりにリネームされています。host は http_host に、status は http_status にリネームされます。
-
データ変換ジョブを作成します。ストレージターゲット エリアで、ターゲット名、Destination Region、ターゲットプロジェクト、対象 Logstore などのパラメーターを設定します。Authorization Method パラメーターの説明については、「データ変換ジョブの作成」をご参照ください。
[宛先名] に
target_logstoreを入力します。[宛先リージョン] で イギリス (ロンドン) を選択します。[宛先プロジェクト] にProject_3を入力します。[ターゲットストア] にLogStore_3を入力します。[権限付与方法] で AccessKey を選択し、AccessKey ID と AccessKey Secret を入力して、[追加] をクリックします。
集約結果の表示
イギリス (ロンドン) リージョンの LogStore_3 で、ログのクエリと分析を行います。以下はログのサンプルです。
"Log 1"
request_id: 1
http_host: example.com
http_status: 200
request_method: GET
request_uri: /pic/icon.jpg
"Log 2"
request_id: 4
http_host: example.net
http_status: 200
request_method: GET
request_uri: /data/index.html