从托管我自己的Elastiscsearch群集切换到Amazon's Elasticsearch Service后, 我的Kibana仪表板(版本4.0.2和4.1.2)无法加载,我在kibana.log中收到以下错误:
{
"name": "Kibana",
"hostname": "logs.example.co",
"pid": 8037,
"level": 60,
"err": {
"message": "Not Found",
"name": "Error",
"stack": "Error: Not Found\n at respond (\/srv\/kibana\/kibana-4.1.2-linux-x64\/src\/node_modules\/elasticsearch\/src\/lib\/transport.js:235:15)\n at checkRespForFailure (\/srv\/kibana\/kibana-4.1.2-linux-x64\/src\/node_modules\/elasticsearch\/src\/lib\/transport.js:203:7)\n at HttpConnector.<anonymous> (\/srv\/kibana\/kibana-4.1.2-linux-x64\/src\/node_modules\/elasticsearch\/src\/lib\/connectors\/http.js:156:7)\n at IncomingMessage.bound (\/srv\/kibana\/kibana-4.1.2-linux-x64\/src\/node_modules\/elasticsearch\/node_modules\/lodash-node\/modern\/internals\/baseBind.js:56:17)\n at IncomingMessage.emit (events.js:117:20)\n at _stream_readable.js:944:16\n at process._tickCallback (node.js:442:13)"
},
"msg": "",
"time": "2015-10-14T20:48:40.169Z",
"v": 0
}
不幸的是,这个错误不是很有帮助。我认为它是一个包装的HTTP 404,但是什么?
如何将Kibana安装连接到亚马逊的Elasticsearch Service?
答案 0 :(得分:5)
使用亚马逊的Elasticsearch Service时,请注意以下几点:
对访问策略的修改需要非确定的时间。我发现在状态不再处理后至少等待15分钟才会有好处。#34;处理&#34;在进行政策调整后。
它在端口80上侦听HTTP请求而不是标准端口9200.确保您的elasticsearch_url
配置指令反映了这一点,例如:
elasticsearch_url:&#34; http://es.example.co:80&#34;
您的Kibana实例很可能没有必要的权限来创建向您显示仪表板所需的索引 - 这是问题的根源。查看Elasticsearch域上的索引,并查找与kibana_index
config指令匹配的行(例如,通过http://es.example.co/_cat/indices)。
例如,如果您的kibana_index
指令的值为.kibana-4
,如果您没有看到如下所示的行:
green open .kibana-4 1 1 3 2 30.3kb 17.2kb
然后您的Kibana索引无法创建所需的索引。如果您转到亚马逊Elasticsearch服务的仪表板并单击Kibana链接,它可能会为您创建.kibana-4
索引。
您可以在现有的Kibana配置中指定此索引,您应该会看到下一点。
您现有的Kibana安装可能需要通过标题进行身份验证:
Kibana:授权标题需要&#39; Credential&#39;参数。授权标题需要&#39;签名&#39;参数。授权标题需要&#39; SignedHeaders&#39;参数。授权标题需要存在&#39; X-Amz-Date&#39;或者日期&#39;头。
您可以在Kibana中进行配置,并可以查看常规signing API request documentation以获取更多帮助。
值得注意的是,在Kibana 4.2中,错误消息传递更好,但由于测试版和亚马逊的Elasticsearch Service最近刚发布,上述内容应该有助于调试