我可以使用以下代码获取导出的仪表板。该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时,它会显示"No objects imported“。
当我从Kibana UI手动导出仪表板时,我得到了以下NDJSON文件:https://pastebin.com/nuRFKjPx
您可以注意到,这两个文件略有不同,格式也不同(通过API和NDJSON手动导出的JSON)。因此,我无法手动导入API生成的JSON文件。你知道为什么当我导入第一个JSON文件时Kibana找不到任何对象吗?
发布于 2021-11-12 09:50:54
有点晚了,但我认为你也应该引入ndjson。卷曲方式:
curl -X POST "{{ host_ip }}:{{ kibana_port }}/api/saved_objects/_import" -H "kbn-xsrf: true" --form file=@/tmp/kibana_stored_objects.ndjsonhttps://stackoverflow.com/questions/67588093
复制相似问题