Simple Log Service のデータ変換 (New Version) を使用して、ウェブサイトのアクセスログをフィルタリングし、個人情報を削除して、結果を宛先 Logstore に書き込みます。このクイックスタートでは、SPL ルールの作成から作成したジョブの監視まで、変換ワークフローを順を追って説明します。
背景情報
あるウェブサイトでは、すべてのアクセスログを website_log という名前の Logstore に保存しています。ユーザーエクスペリエンスを向上させるために、このウェブサイトではアクセスエラーを分析する必要があります。目標は、ステータスコードが 4XX のアクセスログをフィルタリングし、個人情報を削除し、その結果をビジネスアナリスト向けに website_fail という名前の新しい 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: GET
request_uri: /request/path-1/file-5
status: 400
time_local: 10/Jun/2021:19:10:59
error: Invalid time range前提条件
(必須)
web-projectという名前のプロジェクトが作成されていること。詳細については、「プロジェクトの管理」をご参照ください。(必須)
web-projectプロジェクトにwebsite_logという名前のソース Logstore が作成されていること。詳細については、「Logstore の管理」をご参照ください。(必須) ウェブサイトのアクセスログがソース Logstore (
website_log) に収集されていること。詳細については、「データ収集の概要」をご参照ください。(必須)
web-projectプロジェクトにwebsite_failという名前の宛先 Logstore が作成されていること。(条件付き) RAM ユーザーを使用する場合、RAM ユーザーにデータ変換の権限が付与されていること。詳細については、「RAM ユーザーへのデータ変換操作の権限付与」をご参照ください。
(任意) ソース Logstore と宛先 Logstore の両方にインデックスが設定されていること。詳細については、「インデックスの作成」をご参照ください。
説明データ変換ジョブにインデックスは必須ではありません。ただし、インデックスが設定されていない場合、クエリおよび分析操作は実行できません。
手順1:データ変換ジョブの作成
Simple Log Service コンソールにログインします。
データ変換ページに移動します。
[Projects] セクションで、目的のプロジェクトをクリックします。
タブで、目的の Logstore をクリックします。
クエリと分析ページで、[Data Transformation] をクリックします。
ページの右上隅で、時間範囲を選択します。
時間範囲を選択した後、Rawデータ タブにログが表示されることを確認します。
エディターに、次の変換 SPL ルールを入力します。
* | extend status=cast(status as BIGINT) | where status>=400 AND status<500 | project-away remote_addr, remote_userこのルールは、3つの演算子を順番に適用します。
extend status=cast(status as BIGINT)は、statusフィールドを BIGINT 型に変換します。where status>=400 AND status<500は、ステータスコードが 4XX のアクセスログのみを保持します。project-away remote_addr, remote_userは、個人情報を含むremote_addrフィールドとremote_userフィールドを削除します。
SPL ルールをデバッグします。
[Raw Data] タブで、テストデータを選択するか、手動でテストデータを入力します。
[ { "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": "GET", "request_uri": "/request/path-1/file-5", "status": "400", "time_local": "10/Jun/2021:19:10:59", "error": "Invalid time range" } ]実行アイコン (▷) をクリックしてデバッグを実行します。
プレビュー結果を表示します。実行が完了したら、[Transformation Results] タブに切り替えて結果を表示します。変換されたログは、
body_bytes_sent、error、http_user_agent、request_method、request_uri、status、time_localなどの複数のフィールドに構造化されています。remote_addrとremote_userが削除され、ステータスコードが 4XX のアクセスログのみが残っていることを確認します。
データ変換ジョブを作成します。
[Save as Transformation Job (New Version)] をクリックします。
[Create Data Transformation Job (New Version)] パネルで、次のパラメーターを設定し、OK をクリックします。
パラメーター
説明
[タスク名]
データ変換ジョブの名前。
[表示名]
ジョブの表示名。
[ジョブの説明]
ジョブの説明。
[Authorization Method]
次のいずれかの方法で、ジョブにソース Logstore への読み取り権限を付与します。
[Default Role]:ジョブは AliyunLogETLRole システムロールを使用し、ソース Logstore からデータを読み取ります。[システムロール AliyunLogETLRole の承認] をクリックし、プロンプトに従って承認を完了します。詳細については、「デフォルトロールを使用したデータへのアクセス」をご参照ください。
重要RAM ユーザーを使用する場合、あらかじめ Alibaba Cloud アカウントで承認を完了しておく必要があります。
Alibaba Cloud アカウントがすでに承認されている場合は、この手順をスキップできます。
[Custom Role]:ジョブはカスタムロールを使用し、ソース Logstore からデータを読み取ります。まず、カスタムロールにソース Logstore からデータを読み取る権限を付与し、次に Role ARN フィールドにロールの ARN を入力する必要があります。詳細については、「カスタムロールを使用したデータへのアクセス」をご参照ください。
AccessKey:セキュリティ上の理由から、AccessKey ペア (AK/SK) を使用してジョブを作成することはできなくなりました。
[ストレージターゲット]
[ターゲット名]
ストレージの宛先名。プロジェクトや Logstore などの設定が含まれます。
[Destination Region]
宛先プロジェクトが配置されているリージョン。
[ターゲットプロジェクト]
変換結果の宛先プロジェクト。SPL ステートメントで指定されたプロジェクトは、この設定を上書きします。「動的な宛先プロジェクト/Logstore の出力」をご参照ください。
重要SPL ステートメントで動的に指定するプロジェクトは、ここで設定するリージョンと権限付与に一致する必要があります。
[ターゲットデータベース]
変換結果の宛先 Logstore。SPL ステートメントで指定された Logstore は、この設定を上書きします。「動的な宛先プロジェクト/Logstore の出力」をご参照ください。
重要SPL ステートメントで動的に指定する Logstore は、ここで設定するリージョン、権限付与、およびプロジェクトに一致する必要があります。宛先 Logstore をソース Logstore と同じにすることはできません。
警告宛先 Logstore を現在のソース Logstore として設定しないでください (同一ソース設定)。そうしないと、ログがループで書き込まれ、追加のストレージコストとトラフィックコストが発生する可能性があります。発生したリソース消費とコストはお客様の負担となります。
[Authorization Method]
次のいずれかの方法で、ジョブに宛先 Logstore への書き込み権限を付与します。
[Default Role]:ジョブは AliyunLogETLRole システムロールを使用し、結果を宛先 Logstore に書き込みます。[システムロール AliyunLogETLRole の承認] をクリックし、プロンプトに従って承認を完了します。詳細については、「デフォルトロールを使用したデータへのアクセス」をご参照ください。
重要RAM ユーザーを使用する場合、あらかじめ Alibaba Cloud アカウントで承認を完了しておく必要があります。
Alibaba Cloud アカウントがすでに承認されている場合は、この手順をスキップできます。
[Custom Role]:ジョブはカスタムロールを使用し、結果を宛先 Logstore に書き込みます。まず、カスタムロールに宛先 Logstore にデータを書き込む権限を付与し、次に Role ARN フィールドにロールの ARN を入力する必要があります。詳細については、「カスタムロールを使用したデータへのアクセス」をご参照ください。
AccessKey:セキュリティ上の理由から、AccessKey ペア (AK/SK) を使用してジョブを作成することはできなくなりました。
[結果セットの書き込み]
宛先 Logstore に書き込むデータセット。複数のデータセットが 1 つの宛先を対象にでき、複数の宛先が 1 つのデータセットを共有できます。「データセットの説明」をご参照ください。
処理範囲
[時間範囲]
(データ受信時間)
ジョブの時間範囲:
[すべて]:最初のログエントリから手動で停止されるまですべてのデータを処理します。
[特定の時間に開始されます]:指定された開始時刻から手動で停止されるまでデータを処理します。
[指定期間内]:指定された時間枠内のデータを処理し、終了時刻に自動的に停止します。
[詳細設定]
[パラメーターの詳細設定]
機密情報 (データベースのパスワードなど) をキーと値のペアとして保存し、
res_local("key")を使用してステートメントで参照します。[+] をクリックして、複数のキーと値のペアを追加します。たとえば、
config.vpc.vpc_id.test1:vpc-uf6mskb0b****n9yjは、RDS インスタンスが配置されている VPC の ID を指定します。
手順2:データ変換ジョブの監視
左側のナビゲーションペインで、 を選択します。
データ変換ジョブのリストで、管理したいデータ変換ジョブを見つけてクリックします。
データ変換の概要 (New Version) ページで、ジョブの詳細とステータスを表示します。ジョブの実行ステータスとメトリクスを監視することもできます。詳細については、「データ変換ジョブの監視とモニタリング (New Version)」をご参照ください。ジョブの変更、開始、停止、または削除については、「データ変換ジョブの管理 (New Version)」をご参照ください。
変換結果が宛先 Logstore に書き込まれていることを確認します。宛先 Logstore (
website_fail) に移動して、クエリおよび分析操作を実行します。詳細については、「クエリと分析のクイックガイド」をご参照ください。