elasticsearch通過logstash去重
阿新 • • 發佈:2021-10-29
下載與es對應版本的logstash
下載地址:https://artifacts.elastic.co/downloads/logstash/logstash-6.7.1.tar.gz
一、去重原理
通過logstash將需要去重的索引匯入新的索引,匯入過程中為每個文件指定唯一id,文件資料相同時會自動過濾。
二、去重步驟
1.解壓logstash-6.7.1.tar.gz
tar -zxvflogstash-6.7.1.tar.gz
2.寫conf檔案
input { elasticsearch { hosts => "192.168.56.6" #es主節點ip index=> "t_people_latlng20191101" #需要去重的索引 query => '{ "sort": [ "_doc" ] }' } } filter { mutate { remove_field => ["@timestamp", "@version"] #去除多餘欄位 } fingerprint { source => ["deviceid", "utc"] #根據哪些欄位去重,此處根據id和時間欄位 target => "[@metadata][fingerprint]" method=> "MURMUR3" #設定唯一id的方法 concatenate_sources => true #將多個欄位拼接為唯一id } } output { stdout { codec => dots } #輸出列印 elasticsearch { hosts => "192.168.56.6" #指定的es主節點ip index => "newt_people_latlng20191101" #新的索引 document_id => "%{[@metadata][fingerprint]}" } }
3.執行conf檔案
cd logstash-6.7.1
./bin/logstash -f ship20201103.conf
4.執行多個conf檔案
#!/bin/bash #要執行的conf檔案目錄 cd "/data/es/logstash-6.7.1/conf" dir="/data/es/logstash-6.7.1/conf" files=`find . -name "ship*"` for file in $files do #執行多個conf,需要分別指定不同的data路徑 /data/es/logstash-6.7.1/bin/logstash -f $dir/$file --path.data $dir/data/${file:2:12} done