Saat mengirim data yang telah ditransformasi ke Logstore tujuan, Anda mungkin menemukan data yang tidak diharapkan. Topik ini menjelaskan cara mengatasi masalah tersebut.
Sebuah Logstore bernama website_log berisi 5.000 entri log. Dari jumlah tersebut, 1.000 entri memiliki SourceIP 192.0.2.54, 1.000 memiliki SourceIP 192.0.2.28, dan 1.000 memiliki SourceIP 192.0.2.136. Sisa 2.000 entri memiliki nilai SourceIP lainnya. Anda ingin mentransformasi entri-entri tersebut dan mengirimkannya ke Logstore tujuan yang berbeda.
-
Persyaratan transformasi
-
Distribusikan entri log dengan
SourceIP192.0.2.54ke Logstore bernama54_log. -
Distribusikan entri log dengan
SourceIP192.0.2.28ke Logstore bernama28_log. -
Distribusikan entri log dengan
SourceIP192.0.2.136ke Logstore bernama136_log.
-
-
Hasil yang diharapkan
-
Logstore
54_logberisi 1.000 entri log, semuanya memilikiSourceIP192.0.2.54. -
Logstore
28_logberisi 1.000 entri log, semuanya memilikiSourceIP192.0.2.28. -
Logstore
136_logberisi 1.000 entri log, semuanya memilikiSourceIP192.0.2.136.
-
-
Pernyataan transformasi
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")) -
Target penyimpanan
Anda mengonfigurasi tiga target penyimpanan:
54-target(default),28-target, dan136-target. Target-target tersebut meneruskan data ke Logstore54_log,28_log, dan136_logmasing-masing, dalam Proyeksls-test. -
Hasil aktual
-
(Tidak sesuai harapan) Logstore
54_logberisi 3.000 entri log. Selain log yang diharapkan denganSourceIP192.0.2.54, logstore ini juga berisi log dengan nilaiSourceIPlainnya. -
(Sesuai harapan) Logstore
28_logberisi 1.000 entri log, semuanya memilikiSourceIP192.0.2.28. -
(Sesuai harapan) Logstore
136_logberisi 1.000 entri log, semuanya memilikiSourceIP192.0.2.136.
-
-
Penyebab
Log yang memenuhi suatu kondisi dalam fungsi
e_outputdikirim ke Logstore tujuan yang sesuai. Namun, Simple Log Service secara otomatis mengirim semua log yang tidak memenuhi aturan apa pun ke target penyimpanan default. Dalam contoh ini, target default (54-target) meneruskan log-log tersebut ke Logstore54_log. -
Solusi
Tambahkan fungsi
e_drop()di akhir pernyataan transformasi Anda. Fungsi ini membuang semua log yang tidak memenuhi kondisi tertentu.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()