簡體   English   中英

在logstash中使用Elasticsearch過濾器

[英]Using Elasticsearch filter in logstash

我正在嘗試在 logstash 上使用彈性搜索過濾器來進行一些數據豐富。

我有兩個索引,我的目標是從其中一個獲取一些數據並將其添加到另一個中。

我配置了一個在我的 elasticsearch 中搜索的 logstash 過濾器,如果匹配,則輸出到索引。

但是我的過濾器無法正常工作,因為當我測試過濾器時出現此錯誤

[WARN ] 2020-10-02 19:23:09.536 [[main]>worker2] elasticsearch - Failed to query elasticsearch for previous event {:index=>"logstash-*", :error=>"Unexpected character ('%' (code 37)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n

我認為模板中的變量和彈性搜索之間存在一些問題

我的 logstash 是 7.3.2,我的 ES 是 7.4.2

這是我的設置


       Logstash.conf
        
       input {
               http{ }
       }
        
       filter {
               elasticsearch {
                 hosts => ["127.0.0.1:9200"]
                 index => "logstash-*"
                 query_template => "search-by-ip.json"
                 fields => {
                         "id"  => "[suscriberid]"
                 }
               }
         }
        
        
       output {
         stdout { codec => rubydebug }
       }
        
       -----------------
       search-by-ip.json
        
       {
         "size": 1,
         "query": { "match":{"IP": %{[ip]} } }
       }
       -------------------
       testcase.sh
        
       curl -XPOST "localhost:8080" -H "Content-Type: application/json" -d '{
         "size": 1,
         "query": { "match":{"ip": "192.168.1.4" }}
       }'
        
      ```  



Thanks!

如果您曾經處理過沒有 [ip] 字段的事件,那么 sprintf 引用將不會被替換,您將收到該錯誤。

請注意,ip 和 IP 是不同的字段。 不確定 %{[ip]} 是否需要雙引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM