我可以使用此代码获取导出的仪表板。 API 来自 Kibana 文档: https://www.elastic.co/guide/en/kibana/master/dashboard-api-export.html
tmpdir = '/tmp/kibana/dashboards/'
if not os.path.exists(tmpdir):
os.makedirs(tmpdir)
dashboard = requests.get('http://localhost:5601/api/kibana/dashboards/export?dashboard=d83837a0-7c21-11eb-9dad-4b1b4ebf9d55')
json_dashboard = dashboard.json()
dashboards_exported = []
dashboards_exported.append(json_dashboard)
with open(tmpdir+'Dash'+'.json', 'w') as outfile:
json.dump(dashboards_exported, outfile, indent=2, sort_keys=True)
导出的仪表盘json文件如下: https://pastebin.com/YZTKJFn3
但是,当我想手动将其导入 Kibana UI 时,它会显示“未导入对象”。
当我从 Kibana UI 手动导出仪表板时,我得到以下 NDJSON 文件:https://pastebin.com/nuRFKjPx
您可以注意到这两个文件略有不同,并且格式也不相同(JSON 通过 API 和 NDJSON 手动导出)。 因此,我无法手动导入 API 生成的 JSON 文件。你知道为什么我导入第一个 JSON 文件时 Kibana 没有找到任何对象吗?