使用elasticsearch-repository-oss 插件對es 進行遷移

  • 首先講依賴。依賴於阿里雲的oss服務首先要新建好bucket 創建好存儲空間 這裏可以獲取到密鑰和appid 和bucketName 等等
  • 其次要以來與elasticsearch-repository-oss 這個插件,遷移端和被遷移端都需要安裝此插件。這裏切換es版本的時候會遇到一系列問題。這個在文末補充先講主流程。(這裏很噁心不是每個版本都有這個插件。遷移的時候需要遷就這個插件來更改es版本)
  • 在遷移端打鏡像
    首先在es集羣中創建倉庫
    curl -H "Content-Type: application/json" -XPUT localhost:9200/_snapshot/<yourBackupName> -d' {"type": "oss", "settings": { "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com",  "access_key_id": "<yourAccesskeyId>",  "secret_access_key":"<yourAccesskeySecret>", "bucket": "<yourBucketName>", "compress": true }}'
    或者在kibana使用一下命令進行創建倉庫
    PUT _snapshot/<yourBackupName>
    {
        "type": "oss",
        "settings": {
            "endpoint": "oss-cn-hangzhou-internal.aliyuncs.com",
            "access_key_id": "<yourAccesskeyId>",
            "secret_access_key": "<yourAccesskeySecret>",
            "bucket": "<yourBucketName>",
            "compress": true
        }
    }
    爲全部索引創建快照
    PUT _snapshot/my_backup/snapshot_1

    查看快照信息
    GET _snapshot/my_backup/_all

     

  • 在遷移目標端恢復快照。
    首先還是要創建相同的倉庫 這裏的配置和遷移端一致。
    PUT _snapshot/<yourBackupName>
    {
        "type": "oss",
        "settings": {
            "endpoint": "oss-cn-hangzhou-internal.aliyuncs.com",
            "access_key_id": "<yourAccesskeyId>",
            "secret_access_key": "<yourAccesskeySecret>",
            "bucket": "<yourBucketName>",
            "compress": true
        }
    }
    
    在目標端回覆快照
    POST _snapshot/es_backup/snapshot_1/_restore
    {"indices":"*,-.monitoring*,-.security_audit*","ignore_unavailable":"true"}

     

  • 最後查看恢復效果 
    GET /_cat/indices?v
    -- 根據index 排序
    GET /_cat/indices?v&s=index

     

  • 在實際操作過程中會遇到的一些問題以及具體的解決方案 。
    • 首先是插件的版本和es的版本需要一致的問題。如果不一致會導致es起不來
    • 在切換es版本的時候kibana 可能起不來。 這是因爲不同版本的 kibana 在es中的一些index不兼容導致的 這裏可以通過先停止kibana容器然後在es 刪除 舊版本的kibana index 
      curl -X DELETE http://localhost:9200/*kibana*
    • 在使用通配表達式的時候 7.10版本爲了安全默認禁用了這種表達式會禁止使用這種表達式需要修改配置才能使上一步語句執行。 (報錯如:Wildcard expressions or all indices are not allowed)解決方案
      1、可以在elasticsearch.yml 進行如下配置
      action.destructive_requires_name: false
      2、直接在kibana執行
      PUT /_cluster/settings
      {"persistent" : {"action.destructive_requires_name":false}}

      我用的是方法2.經過上述配置修改之後。就能使用正則進行批量刪除了。這裏建議遷移完畢之後上述參數還是要改成true 。

    • 在恢復快照過程中如果當前目標es 存在快照相同的index ,恢復過程會被中斷。這裏我是按照提示重複的index進行刪除即可。
  • from  https://help.aliyun.com/document_detail/170022.html
  • https://help.aliyun.com/document_detail/65675.htm?spm=a2c4g.11186623.0.0.63394a62bmDpXj#concept-b3z-3ts-zgb
    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章