我正在寻找导出然后导入所有 Kibana 4 保存的搜索、可视化和仪表板所需的命令列表。我还希望为 logstash 自动创建默认的 Kibana 4 索引模式。
我已经尝试使用这里概述的弹性转储http://air.ghost.io/kibana-4-export-and-import-visualizations-and-dashboards/但未创建默认的 Kibana 索引模式并且保存的搜索不'似乎没有得到出口。
我正在寻找导出然后导入所有 Kibana 4 保存的搜索、可视化和仪表板所需的命令列表。我还希望为 logstash 自动创建默认的 Kibana 4 索引模式。
我已经尝试使用这里概述的弹性转储http://air.ghost.io/kibana-4-export-and-import-visualizations-and-dashboards/但未创建默认的 Kibana 索引模式并且保存的搜索不'似乎没有得到出口。
GitHub 项目elastic/beats-dashboards包含一个用于转储 Kibana 定义(到 JSON,每个定义一个文件)的Python 脚本,以及一个用于将这些导出的定义加载到 Elasticsearch 实例中的shell 脚本。
Python 脚本转储了所有 Kibana 定义,在我的情况下,这比我想要的要多。
我只想分发一些定义:具体来说,一些仪表板(及其可视化和搜索)的定义,而不是我的 Elasticsearch 实例上的所有仪表板。
我考虑了各种选项,包括编写脚本以获取特定的仪表板定义,然后解析该定义,并获取引用的可视化和搜索定义,但现在,我采用了以下解决方案(不优雅但实用)。
在 Kibana 中,我编辑了每个定义,并在 Description 字段中插入了一个字符串,将定义标识为我要导出的定义。例如,"#exportme"
。
在转储定义的 Python 脚本(来自 beats-dashboards)中,我在搜索函数调用中引入了一个查询参数,将其限制为具有该标识字符串的定义。例如:
res = es.search(
index='.kibana',
doc_type=doc_type,
size=1000,
q='description:"#exportme"')
(实际上,与其硬编码“主题标签”,不如通过命令行参数指定它。)
我特别喜欢 elastic/beats-dashboards 提供的 dump'n'load 脚本的一个方面是它们的粒度:每个定义一个 JSON 文件。我发现这对版本控制很有用。
您可以像这样使用 elasticdump 进行搜索:
elasticdump --input=http://localhost:9200/.kibana --output=$ --type=data --searchBody='{"filter": {"type": {"value": "search"}} }'