簡體   English   中英

通過logstash將數據從mongodb同步到elasticsearch

[英]sync data from mongodb to elasticsearch via logstash

我只想使用logstash將mongodb中的數據同步到彈性。 它運行良好,當 mongodb 中出現任何新記錄時,logstash 會進入彈性狀態。 但是,當我更新 mongodb 中的任何記錄時,即使我刪除它也不會更改為 elasticsearch 什么都沒有發生。 我想在配置文件中進行更改,以便在 mongo 中更新或刪除任何記錄時,它也應該反映在彈性中。

input {
mongodb {

    uri => 'mongodb://xxxxxx:32769/database'
    placeholder_db_dir =>'/usr/share/logstash/bin/opt/logstash-mongodb/'
    placeholder_db_name => 'logstash_sqlite.db'
    collection => 'tags'
}
}
filter {
mutate {
rename => { "_id" => "mongo_id" }
}
}
output {
    stdout {
            codec => rubydebug
    }
    elasticsearch {
            action => "index"
            index => "mongo_data"
            hosts => ["https://xxxxxxxx:8443"]
            ssl => true
  doc_as_upsert => true

   }
   }

這不是輸入旨在支持的用例。 文檔指出“這是為解析寫入 mongodb 的日志而設計的。這意味着它可能不會重新解析已更改和已解析的數據庫條目。” 對於“可能不會”,請閱讀“不會”。 代碼構建了一個 cursor 來查找 id 大於它讀取的最后一個 id 的文檔。 它從不尋找更新或刪除。 另請注意,測試“大於最后一個 id”,它初始化最后一個 id 的方式意味着它永遠不會讀取集合中的第一個文檔。

暫無
暫無

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

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