このトピックでは、Web サイトのアクセスログを例にデータ変換のプロセスを説明するとともに、その機能と操作を素早く理解するためのお手伝いをします。
前提条件
-
web-projectという名前のプロジェクトが作成されていること。詳細については、「プロジェクトの管理」をご参照ください。 -
web-projectプロジェクトにwebsite_logという名前のソース Logstore が作成されていること。詳細については、「基本的な Logstore の作成」をご参照ください。 -
Web サイトのアクセスログが収集され、ソース Logstore (
website_log) に保存されていること。詳細については、「データ収集」をご参照ください。 -
web-projectプロジェクトに送信先 Logstore が作成されていること。送信先 Logstore の説明を次の表に示します。送信先 Logstore
説明
website-success
成功したアクセスリクエストのログを
website-successLogstore に保存します。これは、ストレージターゲットtarget-successに対応します。website-fail
失敗したアクセスリクエストのログを
website-failLogstore に保存します。これは、ストレージターゲットtarget-failに対応します。website-etl
その他すべてのアクセスログを
website-etlLogstore に保存します。これは、ストレージターゲットtarget0に対応します。 -
RAM ユーザーを使用する場合、データ変換操作を実行するために必要な権限を RAM ユーザーに付与する必要があります。詳細については、「RAM ユーザーへのデータ変換の権限付与」をご参照ください。
-
ソース Logstore と送信先 Logstore のインデックスが設定されていること。詳細については、「インデックスの作成」をご参照ください。
重要データ変換ジョブはインデックスに依存しません。ただし、インデックスを設定しないと、データのクエリと分析はできません。
背景情報
Web サイトのすべてのアクセスログは、1 つの Logstore に保存されます。分析を容易にするために、成功したアクセスログと失敗したアクセスログに異なるトピックを設定し、それぞれを異なる Logstore にルーティングしたいとします。以下にログのサンプルを示します。
body_bytes_sent:1061
http_user_agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5
remote_addr:192.0.2.2
remote_user:vd_yw
request_method:DELETE
request_uri:/request/path-1/file-5
status:207
time_local:10/Jun/2021:19:10:59
ステップ 1:データ変換ジョブの作成
Log Serviceコンソールにログインします。
-
データ変換ページに移動します。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
タブで、管理するログストアをクリックします。
-
クエリと分析ページで、データ処理 をクリックします。
-
右上隅で、データの時間範囲を選択します。
時間範囲を選択した後、[生ログ] タブにログが表示されることを確認してください。
-
エディターに、変換ステートメントを入力します。
e_if(e_search("status:[200,299]"),e_compose(e_set("__topic__","access_success_log"),e_output(name="target-success"))) e_if(e_search("status:[400,499]"),e_compose(e_set("__topic__","access_fail_log"),e_output(name="target-fail")))e_if関数は、条件が満たされたときに指定された操作を実行します。詳細については、「e_if」をご参照ください。-
条件:
e_search("status:[200,299]")statusフィールドの値が条件を満たす場合、操作 1 と操作 2 を実行します。詳細については、「e_search」をご参照ください。 -
操作 1:
e_set("__topic__","access_success_log")__topic__フィールドを追加し、その値をaccess_success_logに設定します。詳細については、「e_set」をご参照ください。 -
操作 2:
e_output(name="target-success", project="web-project", logstore="website-success")この操作は、変換されたデータをストレージターゲットに書き込みます。この例では、データは
website-successLogstore に書き込まれます。詳細については、「e_output」をご参照ください。
-
-
データをプレビューします。
-
[クイック] をクリックします。
Simple Log Service は、クイックプレビューモードと詳細プレビューモードをサポートしています。詳細については、「データのプレビューとデバッグ」をご参照ください。
-
[データプレビュー] をクリックします。
プレビュー結果を表示します。
重要プレビュー中、ログは送信先 Logstore には送信されません。代わりに、
internal-etl-logという名前の Logstore に送信されます。Simple Log Service は、データ変換を初めてプレビューする際に、現在のプロジェクトにこの専用の Logstore を自動的に作成します。その設定を変更したり、他のデータを書き込んだりすることはできません。この Logstore は無料です。[変換結果] タブをクリックします。ログが
target-successに正常に配信されたことを確認します。__topic__フィールドの値はaccess_success_log、statusフィールドの値は207です。これは、変換ルールがログを正しく照合し、ルーティングしたことを示します。
-
-
データ変換ジョブを作成します。
-
[変換ジョブとして保存] をクリックします。
-
[データ変換ジョブの作成] パネルで、次のパラメーターを設定します。
パラメーター
説明
[ジョブ名]
データ変換ジョブの名前。
[権限付与方法]
データ変換ジョブには、ソース Logstore からデータを読み取る権限が必要です。次のいずれかの方法でこの権限を付与します。
-
デフォルトロール:ジョブが
AliyunLogETLRoleシステムロールを引き受けて、ソース Logstore からデータを読み取ります。 -
カスタムロール:ジョブがカスタムロールを引き受けて、ソース Logstore からデータを読み取ります。
まず、ソース Logstore からデータを読み取る権限をカスタムロールに付与する必要があります。 次に、Role ARN フィールドにカスタムロールの ARN を入力します。 詳細については、「カスタムロールを使用してデータにアクセスする」をご参照ください。
[ストレージターゲット]
[ターゲット名]
ストレージターゲットの名前。ストレージターゲットには、プロジェクトや Logstore などの設定が含まれます。
ステップ 4 で設定した
nameと一致する必要があります。説明Simple Log Service は、最初に設定したストレージターゲット (この例では
target0) を、他のどの条件にも一致しないログを保存するためのデフォルトのターゲットとして使用します。[ターゲットリージョン]
送信先プロジェクトがあるリージョンを選択します。
クロスリージョンのデータ変換は、HTTPS を使用して安全に実行されます。
リージョン間のデータ変換は、パブリックネットワークを介してデータを伝送するため、ネットワークの不安定性によりジョブの遅延が発生する可能性があります。[DCDN 高速化] チェックボックスをオンにすると、リージョン間の伝送を高速化できます。DCDN 高速化を使用する場合は、対応するプロジェクトで高速化機能が有効になっていることを確認してください。詳細については、「ログ収集の高速化」をご参照ください。
重要パブリックネットワーク経由で Simple Log Service エンドポイントからデータがプルされる場合、アウトバウンドのパブリックネットワークトラフィックに対して課金されます。これは圧縮後のデータサイズに基づいて計算されます。詳細については、「機能別課金の課金項目」をご参照ください。
[ターゲットプロジェクト]
変換結果の送信先プロジェクト。
[ターゲット Logstore]
変換結果の送信先 Logstore。
[権限付与方法]
データ変換ジョブには、送信先 Logstore に書き込む権限が必要です。次のいずれかの方法でこの権限を付与します。
-
デフォルトロール:ジョブが
AliyunLogETLRoleシステムロールを引き受けて、変換結果を宛先 Logstore に書き込みます。 -
カスタムロール:ジョブがカスタムロールを引き受けて、変換結果を宛先 Logstore に書き込みます。
まず、カスタムロールに、宛先 Logstore にデータを書き込む権限を付与する必要があります。次に、カスタムロールの ARN をRole ARN フィールドに入力します。詳細については、「カスタムロールを使用したデータへのアクセス」をご参照ください。
[処理範囲]
[時間範囲]
処理するデータの時間範囲を指定します。
説明時間範囲は、Simple Log Service がログを受信した時刻に基づきます。
-
[すべて]: Logstore で最初のログが受信された時点からジョブが手動で停止されるまで、データを処理します。
-
[指定時刻から]: 開始時刻を指定します。ジョブは、指定された時刻から手動で停止されるまでデータを処理します。
-
[指定期間内]: 開始時刻と終了時刻を指定します。ジョブは、指定された終了時刻までのデータを処理した後、自動的に停止します。
-
-
[OK] をクリックします。
-
ログが送信先 Logstore にルーティングされた後、クエリと分析を実行できます。詳細については、「ログのクエリと分析のクイックスタート」をご参照ください。
ステップ 2:データ変換ジョブの表示
-
左側のナビゲーションペインで、 を選択します。
-
データ変換ジョブのリストで、目的のジョブをクリックします。
-
[データ変換概要] ページで、ジョブの詳細を表示します。
ジョブの詳細とステータスを表示したり、ジョブを変更、開始、停止、または削除したりできます。詳細については、「データ変換ジョブの管理」をご参照ください。
ジョブの詳細ページで、[基本情報] セクションにソース Logstore が
website-log、ステータスが 実行中、時間範囲が 継続 と表示されます。[消費の進捗] テーブルには、シャード 0 とシャード 1 の両方で正常な消費が示されています。[ストレージターゲット] セクションには、3 つの送信先 Logstore (target0(website-etl)、target-success(website-success)、target-fail(website-fail)) がリストされており、すべて China (Chengdu) リージョンのweb-projectプロジェクトにあります。その下の [データ変換の診断] セクションでは、[読み取りログ] と [配信ログ] がともに 12.517 M 行、[失敗ログ] が 0 行、配信率が 100.0% であることが示されています。これは、データ変換ジョブがデータ損失なしに正しく実行されていることを示します。