Kibana Dashboard迁移

本文介绍在数据迁移到SLS后,如何将原来Kibana中的Dashboard迁移到SLS对接的Kibana中。

方案概览

image
  1. 从旧的Kibana导出Dashboardexport.ndjson文件。

  2. export.ndjson中的旧的Index pattern ID替换成新的KibanaIndex pattern ID

  3. 完成替换后,把export.ndjson导入到新的Kibana中。

操作步骤

1. 在ES中准备数据和Dashboard, 并导出Dashboard配置

  1. ES写入如下数据。

    POST people/_bulk
    { "index": {} }
    { "name": "Alice", "age": 30 }
    { "index": {} }
    { "name": "Bob", "age": 25 }
    { "index": {} }
    { "name": "Charlie", "age": 35 }
  2. Kibana上基于people创建两个Dashboard,分别是People DashboardPeople Names

    image

  3. People Dashboard中创建一个图表。

    image

  4. 单击Stack Management > Saved Objects进入Kibana,在Saved Objects页面,选择想要导出的Dashboard,注意不要勾选Include related objects,导出后Dashboard的内容存在export.ndjson中。

    image

2. 在SLS对接的Kibana中复用Dashboard

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

    image

  3. Logstore中写入相同的日志数据,确保字段一致。

    说明

    ES中的字段和SLS中写入的字段需要一致,不然可能导致Dashboard迁移后打开报错(比如报字段不存在)。

    image

  4. 新部署一套Kibana并对接SLS,操作步骤,请参考对接Kibana

    说明

    这里用的ES/Kbiana版本和之前的ES/Kibana版本保持一致。

  5. 使用Docker ComposeHelm Chart方案对接SLS后,会自动在Kibana中创建好相应的Index pattern。

    image

3. 执行迁移

  1. 查看源ES中的Index PatternID,kibana_config_1.json如下:

    {
        "url" : "http://xxx:5601",
        "user" : "elastic",
        "password" : "",
        "space" :  "default"
    }

    执行如下命令,使用ptn_list.py来查看Index Pattern。

    ➜  python ptn_list.py kibana_config_1.json
    f06fc2b0-****-****-****-15adf26175c7    people

    其中f06fc2b0-****-****-****-15adf26175c7就是源peopleindex patternID。可以在Kibana导出的Dashboard配置文件export.ndjson中,查看对Index Pattern ID的引用。

    image

  2. SLS对接的Kibana中找到新的Index PatternID。

    同样使用ptn_list.py来查看新的KibanaIndex PatternID。

    # 准备好kibana_config_2.json
    
    ➜  python ptn_list.py kibana_config_2.json
    ef710470-****-****-****-ad198b7b763d	etl.people

    通过sed命令批量修改export.ndjson中的ID替换。

    sed -i 's/f06fc2b0-****-****-****-15adf26175c7/ef710470-****-****-****-ad198b7b763d/' export.ndjson
  3. 单击Stack Management > Saved Objects进入新的Kibana,在Saved Objects页面,单击Importexport.ndjson导入,出现下面界面表示导入成功。

    image

  4. 打开新的Dashboard查看导入结果。

    image