掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
業(yè)務(wù)上云過程中,勢必會涉及到企業(yè)內(nèi)部自建中間件等服務(wù)的遷移上云的需求,本文介紹下自建ES服務(wù)遷移上云的一些遷移方案以及如何根據(jù)業(yè)務(wù)場景選取適合的遷移方案

創(chuàng)新互聯(lián)公司成立與2013年,先為元謀等服務(wù)建站,元謀等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為元謀企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
原理:以O(shè)SS為中轉(zhuǎn)存儲介質(zhì),使用elasticsearch-repository-oss插件關(guān)聯(lián)兩個集群,源集群備份數(shù)據(jù),目標集群恢復(fù)數(shù)據(jù)(云廠商的托管ES集群默認都安裝了oss插件),因為是快照模式,數(shù)據(jù)一致性得到保證,數(shù)據(jù)恢復(fù)速度也快
OSS遷移原理
原理:logstash通俗的講:就是一個管道,連接兩端不同數(shù)據(jù)源。它的工作原理就是讀取源端數(shù)據(jù)(input),經(jīng)過處理(filter)發(fā)送到目標端(output),可以使用它的這個特性連接兩個集群,遷移數(shù)據(jù)
logstash工作原理
input {
elasticsearch {
hosts => ["http://<自建Elasticsearch Master節(jié)點的IP地址>:9200"]
user => "elastic"
index => "*,-.monitoring*,-.security*,-.kibana*"
password => "your_password"
docinfo => true
schedule => "*/30 * * * *" #每30分鐘同步一次
}
}
filter {
}
output {
elasticsearch {
hosts => ["http:<云資源暴露的endpoint地址>//:9200"]
user => "elastic"
password => "your_password"
index => "%{[@metadata][_index]}"
document_type => "%{[@metadata][_type]}"
document_id => "%{[@metadata][_id]}"
}
}
logstash不能感知對索引的delete操作,即原集群中文檔數(shù)據(jù)被刪除了,目標集群不會跟著刪除,update操作是支持同步的
對實時性要求不高的場景比較適用。
使用技巧:
原理:這是一個索引遷移工具,比較輕量化,基本原理也是定義input和output,從原集群查詢數(shù)據(jù)寫入到目標集群,類型于logstash,但是不支持數(shù)據(jù)過濾功能
elasticdump --input 原集群es地址/索引 --output 目標集群es地址/索引
# type:指定遷移的類型,支持mapping、、analyzer、data
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=data
原理:通過將自建集群和云上集群這兩個本身獨立的集群融合為一個大集群,并結(jié)合ES集群自帶的分片分配、遷移特性 來完成數(shù)據(jù)的遷移工作
在線融合遷移方案
注意事項
原理:reindex是ES提供的一個api接口,可以把數(shù)據(jù)從一個集群遷移到另外一個集群,reindex的核心做跨索引、跨集群的數(shù)據(jù)遷移,比如我們的某個索引分片過大,我們就可以創(chuàng)建新索引,在使用reindex API遷移數(shù)據(jù)。
目標集群設(shè)置whilelist白名單。
reindex.remote.whitelist: ["10.0.xx.xx:9200","10.15.xx.xx:9200","10.15.xx.xx:9200","10.15.xx.xx:9200"]目標集群調(diào)用reindex api配置遷移任務(wù)。
POST _reindex
{
"source": {
"remote": {
"host": "http://x.x.x.1:9200"
},
"index": "test1"
},
"dest": {
"index": "test2"
}
}
原理:跨集群復(fù)制 (CCR) 功能支持將特定索引從一個 ElasticSearch 集群復(fù)制到一個或多個 ElasticSearch 集群。除了跨數(shù)據(jù)中心復(fù)制之外,CCR 還有許多其他用例,包括數(shù)據(jù)本地化,或者將數(shù)據(jù)從 Elasticsearch 集群復(fù)制到中央報告集群。
備注:6.7及以后的版本支持,CCR 是一項白金級功能(付費功能)。
在上面我們介紹了可用的跨集群遷移方案,還有兩種方式也是經(jīng)常被提及的,方案那么多,我們怎么去選取適合自己業(yè)務(wù)場景的遷移方案,是一個值得我們?nèi)ニ伎嫉膯栴},我整理了一個表格供大家參考:
ES集群業(yè)界常用遷移方案

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流