変換後のデータを送信先 LogStore に配信した後、想定外のデータが見つかることがあります。このトピックでは、この問題の解決方法について説明します。
website_log という名前のソース LogStore には 5,000 件のログエントリが含まれています。内訳は、SourceIP が 192.0.2.54 のものが 1,000 件、SourceIP が 192.0.2.28 のものが 1,000 件、SourceIP が 192.0.2.136 のものが 1,000 件、その他の SourceIP 値を持つものが 2,000 件です。これらのログを変換し、異なる送信先 LogStore に配信します。
-
変換要件
-
SourceIP が 192.0.2.54 のログエントリを 54_log LogStore に配信します。
-
SourceIP が 192.0.2.28 のログエントリを 28_log LogStore に配信します。
-
SourceIP が 192.0.2.136 のログエントリを 136_log LogStore に配信します。
-
-
期待される結果
-
54_log LogStore には、SourceIP が 192.0.2.54 のログエントリが 1,000 件含まれます。
-
28_log LogStore には、SourceIP が 192.0.2.28 のログエントリが 1,000 件含まれます。
-
136_log LogStore には、SourceIP が 192.0.2.136 のログエントリが 1,000 件含まれます。
-
-
変換文
e_if(e_search("SourceIP==192.0.2.54"), e_output(name="54-target", project="sls-test", logstore="54_log")) e_if(e_search("SourceIP==192.0.2.28"), e_output(name="28-target", project="sls-test", logstore="28_log")) e_if(e_search("SourceIP==192.0.2.136"), e_output(name="136-target", project="sls-test", logstore="136_log")) -
ストレージターゲット

-
変換結果
-
「54_log」という名前の LogStore には 3,000 件のエントリが含まれており、その一部には想定されていた 192.0.2.54 以外の SourceIP 値が含まれています。
-
28_log LogStore には、SourceIP が 192.0.2.28 のログエントリが 1,000 件含まれます。これは期待どおりです。
-
136_log LogStore には、SourceIP が 192.0.2.136 のログエントリが 1,000 件含まれます。これは期待どおりです。
-
-
原因分析
Simple Log Service は、変換されたログを次の方法で配信します。e_output 条件に一致するログは、指定された送信先 LogStore に送信されます。DSL によって処理された他のすべてのログのうち、明示的に破棄されなかったものは、ストレージターゲット 1 (この場合は 54_log LogStore) に送信されます。ストレージターゲット 1 はデフォルトのターゲットです。
-
ソリューション
変換文に `e_drop()` を追加することで、どの条件にも一致しないログを破棄できます。
e_if(e_search("SourceIP==192.0.2.54"), e_output(name="54-target", project="sls-test", logstore="54_log")) e_if(e_search("SourceIP==192.0.2.28"), e_output(name="28-target", project="sls-test", logstore="28_log")) e_if(e_search("SourceIP==192.0.2.136"), e_output(name="136-target", project="sls-test", logstore="136_log")) e_drop()