elasticsearch ElasticSearch中自定义Kibana仪表板的位置
我知道,保存的Kibana仪表板(即仪表板的JSON文件)保存在特定的ElasticSearch实例中或与之关联。如果我在连接到一个承载ElasticSearch的服务器时保存我的Kibana实例,并将我的ElasticSearch服务器切换到另一个地址,我将丢失保存的仪表板。但是,如果我要切换回原始服务器地址,我将恢复保存的仪表板 因此,我的问题是,仪表盘在elasticsearch安装目录中的确切位置。我宁愿能够运行一个脚本来自动加载我预先创建的Kibana仪表盘,而不是每次启动新的ElasticSearch实例时都被迫通过web控制台复制/粘贴JSON 谢谢你的帮助 更新elasticsearch ElasticSearch中自定义Kibana仪表板的位置,elasticsearch,kibana,elasticsearch,Kibana,我知道,保存的Kibana仪表板(即仪表板的JSON文件)保存在特定的ElasticSearch实例中或与之关联。如果我在连接到一个承载ElasticSearch的服务器时保存我的Kibana实例,并将我的ElasticSearch服务器切换到另一个地址,我将丢失保存的仪表板。但是,如果我要切换回原始服务器地址,我将恢复保存的仪表板 因此,我的问题是,仪表盘在elasticsearch安装目录中的确切位置。我宁愿能够运行一个脚本来自动加载我预先创建的Kibana仪表盘,而不是每次启动新的Elas
据此,仪表盘被保存到
kibana int
\索引中,其类型为dashboard
,id为我命名的。所以,为了将我的仪表盘保存到新的ElasticSearch实例中,我是否只需要通过CURL执行一个PUT-into-this _索引?有更好的方法吗?是的,Kibana仪表盘保存在Elasticsearch中的Kibana int
索引下(默认情况下,您可以在config.js
文件中覆盖)。如果要将Kibana仪表盘移动到另一个ES群集,有两个选项:
编辑:对于第二个选项,您可以使用python elasticsearch库及其助手
reindex
,如果您觉得与python更为兼容:在elasticsearch的1.0.0+版本中,快照和还原API已提供:
这使您能够快速备份(快照)和恢复任何给定集群上的每个或任何索引。因此,您可能需要考虑升级到该版本,因为这将为您提供一个简单的API调用,以获取“kibana int”索引的快照,并将该索引恢复到任何其他集群。这里有一个独立的Python脚本,可以将kibana仪表盘从elasticsearch主机复制到另一个主机
#/bin/env python
“”“将所有kibana仪表板从源主机迁移到目标主机。”。
此脚本可能会重复运行,但上的任何仪表板都会发生更改
如果是,DEST_主机将被覆盖。
"""
导入urllib2、urllib、json
SOURCE\u HOST=“您的旧es主机”
DEST_HOST=“您的新es主机”
def http_post(url、数据):
request=urllib2.request(url,数据)
返回urlib2.urlopen(request.read())
def http_put(url、数据):
opener=urlib2.build\u opener(urlib2.HTTPHandler)
request=urllib2.request(url,数据)
request.get_method=lambda:'PUT'
返回opener.open(请求).read()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
旧的仪表盘\u url=“http://%s:9200/kibana int/\u搜索”%SOURCE\u主机
#来自的所有仪表盘(假设少于9999)
#kibana,忽略那些类型为temp的。
旧的仪表盘\u查询=“”{
尺码:9999,
查询:{筛选:{筛选:{类型:{值:“仪表板”}}
}"""
old_dashboards_results=json.loads(http_post(old_dashboards_url,old_dashboards_query))
old_dashboards_raw=old_dashboards_结果['hits']['hits']
旧仪表盘={}
对于旧仪表板中的文档:
旧仪表盘[doc[''u id']=doc[''u source']
对于id,旧仪表板中的仪表板。iteritems():
put_url=“http://%s:9200/kibana int/dashboard/%s”%(DEST_HOST,urllib.quote(id))
打印http_put(put_url,json.dumps(仪表板))
对于kibana 4,我在config/kibana.yml文件中找到了默认索引值,它是“.kibana”
以下是kibana配置文件中的一行
kibana_索引:“.kibana”
这是向我显示所需结果的查询
curl-XGEThttp://localhost:9200/.kibana/_search?type=dashboard&pretty=1
正如其他人所说,您可以在elasticsearch中找到Kibana保存在.Kibana索引中的所有对象
Kibana4的最新版本包括一个导出和导入功能,可以很容易地将对象从一个安装移动到另一个安装。您可以通过单击“设置”和“对象”选项卡来找到此功能。一个独立的Ruby脚本,可以将单个仪表板、其可视化效果及其存储的搜索从一个集群复制到另一个集群。它太大了一点,不能粘贴到这个盒子里。事实上,很容易, 复制两个文件夹:
1) .\elasticsearch\data\nodes\0\indices\.kibana
2) .\elasticsearch\data\nodes\0\indices\kibana-int
粘贴新的elasticsearch。在kibana 4中,它似乎存储在索引
下。kibana
此脚本帮助我开始了解kibana对象如何存储在ES中,但除了复制仪表板文档外,还需要复制可视化和保存的搜索,如果有的话。如果我们能用Kibana4和Kibana5更新这个脚本,那就太好了