本文介绍在数据迁移到SLS后,如何将原来Kibana中的Dashboard迁移到SLS对接的Kibana中。
方案概览
-
从旧的Kibana导出Dashboard的
export.ndjson文件。 -
把
export.ndjson中的旧的Index pattern ID替换成新的KibanaIndex pattern ID。 -
完成替换后,把
export.ndjson导入到新的Kibana中。
操作步骤
1. 在ES中准备数据和Dashboard, 并导出Dashboard配置
-
向ES写入如下数据。
POST people/_bulk { "index": {} } { "name": "Alice", "age": 30 } { "index": {} } { "name": "Bob", "age": 25 } { "index": {} } { "name": "Charlie", "age": 35 } -
在Kibana上基于people创建两个Dashboard,分别是
People Dashboard和People Names。 -
在
People Dashboard中创建一个图表。该图表为水平柱状图,指标设置为 Median of age,数值约为 30。
-
单击进入Kibana,在Saved Objects页面,选择想要导出的Dashboard,注意不要勾选Include related objects,导出后Dashboard的内容存在
export.ndjson中。在搜索栏中输入
type:(dashboard)筛选出 Dashboard 类型的 Saved Objects。
2. 在SLS对接的Kibana中复用Dashboard
登录日志服务控制台。
在Project列表区域,单击目标Project。

-
在LogStore中写入相同的日志数据,确保字段一致。
说明ES中的字段和SLS中写入的字段需要一致,不然可能导致Dashboard迁移后打开报错(比如报字段不存在)。
写入完成后,在 SLS 的 test-logstore 中查询 原始日志,可验证日志记录包含 age 和 name 字段及对应值(例如 age: 30, name: Alice;age: 25, name: Bob;age: 35, name: Charlie)。
-
新部署一套Kibana并对接SLS,操作步骤,请参考对接Kibana。
说明这里用的ES/Kbiana版本和之前的ES/Kibana版本保持一致。
-
使用
Docker Compose或Helm Chart方案对接SLS后,会自动在Kibana中创建好相应的Index pattern。在 Kibana 左侧导航栏选择 Stack Management > Index Patterns,可查看到已自动创建的索引模式,例如
etl.people。
3. 执行迁移
-
查看源ES中的Index Pattern的ID,
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就是源people的index pattern的ID。可以在Kibana导出的Dashboard配置文件export.ndjson中,查看对Index Pattern ID的引用。{"id":"f06fc2b0-b82d-11ef-88c6-15adf26175c7", ...}该 UUID 在配置文件中出现多处,表示 Dashboard 对该 Index Pattern 的引用关系。
-
在SLS对接的Kibana中找到新的Index Pattern的ID。
同样使用ptn_list.py来查看新的Kibana中Index Pattern的ID。
# 准备好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 -
单击进入新的Kibana,在Saved Objects页面,单击Import将export.ndjson导入,出现下面界面表示导入成功。
Import saved objects 对话框显示
2 objects imported、2 new,列出 People Dashboard 和 People Names 两个已成功导入的对象,各项右侧带绿色对勾图标。单击 Done 完成操作。 -
打开新的Dashboard查看导入结果。
导入完成后,People Dashboard 页面将展示已导入的可视化面板(例如 Median of age 柱状图),表明数据迁移成功。