全部产品
Search
文档中心

检索分析服务Elasticsearch版:迁移Elasticsearch角色和kibana可视化大盘

更新时间:Aug 21, 2026

如果您需要将源端ES中的角色、用户或可视化大盘的相关信息复制到目标端ES中使用,可以通过手动备份和恢复快照的方式实现。

前提条件

  • 已开通对象存储 OSS(Object Storage Service),并新建一个标准存储类型的Bucket,且Bucket的地域与ES实例的地域保持一致。具体操作,请参见开通OSS服务和创建存储空间。

  • 创建2个阿里云ES实例。一个ES作为源端,一个ES作为目标端,ES不同版本之间恢复快照的兼容性,请参见Index compatibility。

    说明
    • 8.x和7.x版本ES快照恢复有差异,本文以7.10版本ES实例之间的恢复和8.5版本ES实例之间的恢复为例。

    • ES不同版本之间恢复快照的兼容性,请参见Index compatibility。

注意事项

  • 本文中的代码均可以在阿里云ES实例的Kibana控制台上执行。

  • 在ES 8.0及以上版本中,features是备份和恢复系统索引和系统数据流的唯一方式。详细信息,请参见Snapshot and restore。

迁移Elasticsearch角色和用户

步骤一:准备环境

  1. 在源端ES实例中登录Kibana控制台。具体操作,请参见登录Kibana控制台。

  2. 创建角色cj_test_role和一个用户kara,并为该用户分配cj_test_role角色。具体操作,请参见通过Elasticsearch X-Pack角色管理实现用户权限管控。

步骤二:备份快照数据

  1. 登录源端ES实例的Kibana控制台。具体操作,请参见登录Kibana控制台。

  2. 在源端ES实例中创建一个名称为my_backup的仓库,请参见创建快照仓库。

  3. 源端ES实例中创建快照。

    • 执行如下命令,在ES 7.10版本实例中创建快照snapshot_1。

      说明

      ES 7.10版本角色、用户通过系统索引.kibana*,.security*管理。

      ES 7.10版本创建快照命令中参数解析,请参见Restore snapshot API。

      PUT _snapshot/my_backup/snapshot_1
      {
       "indices": ".kibana*,.security*",
       "ignore_unavailable": true,
       "include_global_state": true
      }
    • 执行如下命令,在ES 8.5版本实例中为角色和用户相关的索引创建快照snapshot_1。

      说明

      ES 8.5版本创建快照命令中参数解析,请参见Create snapshot API。

      PUT _snapshot/my_backup/snapshot_1
      {
       "indices": "-*",
       "ignore_unavailable": true,
       "include_global_state": true,
       "feature_states": [
       "security"
       ]
      }
  4. 确认成功创建快照。例如,执行如下命令,获取my_backup仓库中快照snapshot_1的详细信息。

    GET _snapshot/my_backup/snapshot_1

步骤三:恢复快照数据

  1. 登录目标端ES实例的Kibana控制台。具体操作,请参见登录Kibana控制台。

  2. 在目标端ES实例中创建一个名称为my_restore的仓库。

    PUT _snapshot/my_restore
    {
     "type": "oss",
     "settings": {
     "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com",
     "access_key_id": "[your_access_key_id]",
     "secret_access_key": "[your_secret_access_key]",
     "bucket": "[your_bucket_name]",
     "compress": true,
     "chunk_size": "500mb",
     "base_path": "snapshot/"
     }
    }
  3. 将源端ES实例中的快照恢复到目标端ES实例中。

    • ES为7.10版本,在目标端进行如下操作恢复快照。

      说明

      7.10及以下版本在恢复快照前需要先关闭目标端的系统索引.kibana*和.security*,并在恢复快照后尽快开启被关闭的系统索引。

      • 关闭系统索引可能会导致Elasticsearch实例功能不可用或受限。例如,关闭.kibana可能导致Kibana无法使用;关闭.security可能导致安全功能受限。

      • 建议您提前备份数据,以便在需要时进行恢复。

      • 建议在目标端ES的业务低峰期或停止服务时操作。

      • 如果Kibana控制台不能关闭这些索引,建议通过终端操作。具体操作,请参见通过命令行连接集群。

      1. 关闭目标端系统索引.kibana*和.security*。

        POST /<index name>/_close
      2. 恢复源端快照。

        POST /_snapshot/my_restore/snapshot_1/_restore
        {
         "indices": ".kibana*,.security*",
         "ignore_unavailable": true,
         "include_global_state": false
        }
      3. 开启目标端系统索引.kibana*和.security*。

        POST /<index name>/_open
    • ES为8.5版本,在目标端执行如下代码恢复快照snapshot_1。

      POST _snapshot/my_restore/snapshot_1/_restore
      {
       "feature_states": [ "security" ],
       "include_global_state": false, 
       "indices": "-*" 
      }
  4. 验证角色和用户是否迁移成功。

    1. 在页面左上角,选择菜单.png > Management > Stack Management 。

    2. 在左侧菜单栏,选择安全 > 用户,可以看到已经将源端中角色为cj_test_role的用户kara恢复到了目标端ES上。

      image.png

迁移kibana可视化大盘

步骤一:准备环境

  1. 在源端ES实例中登录Kibana控制台。具体操作,请参见登录Kibana控制台。

  2. 添加样例数据。

    说明

    以下操作步骤以ES 8.5版本为例,其他版本操作略有不同,以控制台为准。

    1. 在Kibana主页,通过添加集成开始使用区域单击试用样例数据。

    2. 在样例数据页签,单击其他样例数据集。

    3. 单击Sample flight data数据集下的添加数据。

      待添加数据变为查看数据时,表示该数据集已添加完成。添加样例数据后,Kibana会自动创建一些相关的可视化。

      image.png

  3. 在Kibana控制台左上角,选择菜单.png > Analytics > Visualize Library ,在可视化大盘中查看已存在的可视化,例如【航班】到达地天气、【航班】延误与取消等。

步骤二:备份快照数据

  1. 登录源端ES实例的Kibana控制台。具体操作,请参见登录Kibana控制台。

  2. 在源端ES实例中创建一个名称为my_backup的仓库,请参见创建快照仓库。

  3. 源端ES实例中创建快照。

    • 执行如下命令,在ES 7.10版本实例中创建快照snapshot_2。

      说明

      ES 7.10版本创建快照命令中参数解析,请参见Restore snapshot API。

      PUT _snapshot/my_backup/snapshot_2
      {
       "indices": ".kibana*,.security*",
       "ignore_unavailable": true,
       "include_global_state": true
      }
    • 执行如下命令,在ES 8.5版本实例中为可视化大盘相关的索引创建快照snapshot_2。

      说明

      ES 8.5版本创建快照命令中参数解析,请参见Create snapshot API。

      PUT _snapshot/my_backup/snapshot_2
      {
        "indices": "-*",
        "ignore_unavailable": true,
        "include_global_state": true,
        "feature_states": [
            "security","kibana"
          ]
  4. 确认成功创建快照。例如,执行如下命令,获取my_backup仓库中快照snapshot_2的详细信息。

    GET _snapshot/my_backup/snapshot_2

步骤三:恢复快照数据

  1. 登录目标端ES实例的Kibana控制台。具体操作,请参见登录Kibana控制台。

  2. 在目标端ES实例中创建一个名称为my_restore的仓库。

    PUT _snapshot/my_restore
    {
     "type": "oss",
     "settings": {
     "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com",
     "access_key_id": "[your_access_key_id]",
     "secret_access_key": "[your_secret_access_key]",
     "bucket": "[your_bucket_name]",
     "compress": true,
     "chunk_size": "500mb",
     "base_path": "snapshot/"
     }
    }
  3. 将源端ES实例中的快照恢复到目标端ES实例中。

    • ES为7.10版本,在目标端进行如下操作恢复快照。

      说明

      7.10及以下版本在恢复快照前需要先关闭目标端的系统索引.kibana*和.security*,并在恢复快照后尽快开启被关闭的系统索引。

      • 关闭系统索引可能会导致Elasticsearch实例功能不可用或受限。例如,关闭.kibana可能导致Kibana无法使用;关闭.security可能导致安全功能受限。

      • 建议您提前备份数据,以便在需要时进行恢复。

      • 建议在目标端ES的业务低峰期或停止服务时操作。

      • 如果Kibana控制台不能关闭系统索引,建议通过终端操作。具体操作,请参见通过命令行连接集群。

      1. 关闭目标端系统索引.kibana*和.security*。

        POST /<index name>/_close
      2. 恢复源端快照。

        POST /_snapshot/my_restore/snapshot_2/_restore
        {
         "indices": ".kibana*,.security*",
         "ignore_unavailable": true,
         "include_global_state": false
        }
      3. 开启目标端系统索引.kibana*和.security*。

        POST /<index name>/_open
    • ES为8.5版本,在目标端执行如下代码恢复快照snapshot_2。

      POST _snapshot/my_restore/snapshot_2/_restore
      {
        "feature_states": [ "security","kibana" ],
        "include_global_state": false,    
        "indices": "-*"                   
      }
  4. 验证可视化大盘是否迁移成功。

    在页面左上角,选择菜单.png > Analytics > Visualize Library ,查看从源端复用到目标端的可视化。