Se um Logstore de destino contiver dados inesperados após a transformação de dados, a causa provável será o roteamento de logs não correspondidos para o destino de armazenamento padrão.
Um Logstore chamado website_log contém 5.000 entradas de log. Dessas, 1.000 têm SourceIP igual a 192.0.2.54, 1.000 têm SourceIP igual a 192.0.2.28 e 1.000 têm SourceIP igual a 192.0.2.136. As 2.000 restantes possuem outros valores de SourceIP. O objetivo é transformar essas entradas e enviá-las para diferentes Logstores de destino.
-
Requisitos de transformação
Encaminhar entradas de log com
SourceIPigual a192.0.2.54para o Logstore54_log.Encaminhar entradas de log com
SourceIPigual a192.0.2.28para o Logstore28_log.Encaminhar entradas de log com
SourceIPigual a192.0.2.136para o Logstore136_log.
-
Resultados esperados
O Logstore
54_logcontém 1.000 entradas de log, todas comSourceIPigual a192.0.2.54.O Logstore
28_logcontém 1.000 entradas de log, todas comSourceIPigual a192.0.2.28.O Logstore
136_logcontém 1.000 entradas de log, todas comSourceIPigual a192.0.2.136.
-
Instrução de transformação
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")) -
Destino de armazenamento
Configure três destinos de armazenamento:
54-target(padrão),28-targete136-target. Eles roteiam dados respectivamente para os Logstores54_log,28_loge136_logno projetosls-test. -
Resultados reais
(Inesperado) O Logstore
54_logcontém 3.000 entradas de log. Além dos logs esperados comSourceIPigual a192.0.2.54, há também logs com outros valores deSourceIP.(Conforme esperado) O Logstore
28_logcontém 1.000 entradas de log, todas comSourceIPigual a192.0.2.28.(Conforme esperado) O Logstore
136_logcontém 1.000 entradas de log, todas comSourceIPigual a192.0.2.136.
-
Causa
A função
e_outputenvia logs que atendem a uma condição ao Logstore de destino especificado. Logs sem correspondência vão automaticamente para o destino de armazenamento padrão. Neste exemplo, o destino padrão (54-target) roteia logs não correspondidos para o Logstore54_log. -
Solução
Adicione a função
e_drop()ao final da instrução de transformação para descartar todos os logs não correspondidos.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()