gpt4 book ai didi

python - 通过saved_objects api导出导入Kibana [7.4]对象

转载 作者:行者123 更新时间:2023-12-04 11:00:38 25 4
gpt4 key购买 nike

我正在尝试将索引模式、可视化和仪表板从一个 Kibana 移动到另一个 Kibana。它们在不同的 docker 中运行,监听不同的端口。在saved_objects API 中有导入和导出。天真地假设什么export产品可以被 import 消费我试过下面的代码:

import requests as req

header = {'Content-Type': 'application/json', 'kbn-xsrf': 'true'}

request_json_index_pattern = '''
{
"type": "index-pattern"
}
'''

index_patterns = req.post(kibana_host+':5601/api/saved_objects/_export',
data=request_json_index_pattern,
headers = header,
auth = (elastic_user, elastic_password))


res = req.post(kibana_host+':5602/api/saved_objects/_import',
data=index_patterns.content,
headers = header,
auth = (elastic_user, elastic_password))



print(res.content)

但我得到的只是
{'statusCode': 415, 'error': 'Unsupported Media Type', 'message': 'Unsupported Media Type'}

尽管如此,尽管 index_patterns.content是一个格式良好的 ndjson——我可以用 ndjson.loads 解析它.

我错过了什么?

(顺便说一句,我的源 Kibana 实例是 7.3.1 而目标是 7.4.0。这可能是问题吗?)

最佳答案

我自己遇到了这个。 _import API 需要换行符分隔的 json (ndjson),而不是 json。

https://www.elastic.co/guide/en/kibana/current/saved-objects-api-import.html#_examples_3

我发现一个稍微有点麻烦的解决方法是使用仪表板导入 api:/api/kibana/dashboards/import .它似乎导入了所有保存的对象类型(不仅仅是仪表板)。

关于python - 通过saved_objects api导出导入Kibana [7.4]对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58824243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com