我已使用设置下的导出按钮在 Kibana 中导出了可视化 . 这给了我一个 JSON 文件 . 可视化的名称是Transaction-count .

然后我从 Kibana 删除了可视化 .

我现在想使用API将可视化导回到 Kibana .

如果我键入curl -XPUT“http://localhost:9200/.kibana/visualization/Transaction-count”-d我收到以下错误;

{“error”:{“root_cause”:[{“type”:“mapper_parsing_exception”,“reason”:“无法解析”}],“type”:“mapper_parsing_exception”,“reason”:“无法解析” ,“caused_by”:{“type”:“not_x_content_exception”,“reason”:“压缩器检测只能在某些xcontent字节或压缩的xcontent字节上调用”}}

如果我通过Web GUI手动导入可视化,它可以正常工作 .

如果我然后输入;卷曲XGET“http://localhost:9200/.kibana/visualization/Transaction-count”它给了我以下JSON;

{"index":".kibana","type":"visualization","id":"Transaction-count","version":1,"found":true,"_source":{"title":"Transaction count","visState":"{\"title\":\"Transaction count\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":\"120\"},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}","uiStateJSON":"{}","description":"","savedSearchId":"Transactions","version":1,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"filter\":[]}"}}}

如果我然后输入;

curl -XGET "http://localhost:9200/.kibana/visualization/Transaction-count" -d '{"index":".kibana","type":"visualization","id":"Transaction-count","version":1,"found":true,"_source":{"title":"Transaction count","visState":"{\"title\":\"Transaction count\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":\"120\"},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}","uiStateJSON":"{}","description":"","savedSearchId":"Transactions","version":1,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"filter\":[]}"}}}'

我收到以下输出;

{“error”:{“root_cause”:[{“type”:“mapper_parsing_exception”,“reason”:“Field [_index]是元数据字段,无法在文档中添加 . 请使用索引API请求参数 . ” },“type”:“mapper_parsing_exception”,“reason”:“Field [_index]是一个元数据字段,无法在文档中添加 . 请使用索引API请求参数 . ”},“status”:400}

运行 Elastic 的2.3.3版和 Kibana 的4.5.1版 .

我究竟做错了什么?