Kibana 无法连接到 Amazon Elasticsearch Service 上的 Elasticsearch
Kibana won't connect to Elasticsearch on Amazon's Elasticsearch Service
从托管我自己的 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,但是 what?
如何将 Kibana 安装连接到 Amazon 的 Elasticsearch 服务?
使用 Amazon 的 Elasticsearch Service 时需要注意以下几点:
修改访问策略需要 non-deterministic 时间。我发现在更改策略后状态不再 "processing" 后至少等待 15 分钟是好的。
它在端口 80 上侦听 HTTP 请求,而不是标准端口 9200。确保您的 elasticsearch_url
配置指令反映了这一点,例如:
elasticsearch_url: "http://es.example.co:80"
您的 Kibana 实例很可能没有必要的权限来创建向您显示仪表板所需的索引——这是问题的根源。检查 Elasticsearch 域上的索引并查找与 kibana_index
配置指令匹配的行(例如通过 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 link,它可能会为您创建一个 .kibana-4
索引。
您可以在现有 Kibana 的配置中指定此索引,您应该会看到下一点。
您现有的 Kibana 安装可能需要通过 header:
进行身份验证
Kibana:授权 header 需要 'Credential' 参数。授权 header 需要 'Signature' 参数。授权 header 需要 'SignedHeaders' 参数。授权 header 需要存在 'X-Amz-Date' 或 'Date' header。
您可以在 Kibana 中进行配置,并可以查看常规 signing API request documentation 以获得更多帮助。
值得注意的是,据报道,Kibana 4.2 中的错误消息更好,但由于它处于测试阶段并且 Amazon 的 Elasticsearch Service 最近发布,以上内容应该有助于调试。
从托管我自己的 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,但是 what?
如何将 Kibana 安装连接到 Amazon 的 Elasticsearch 服务?
使用 Amazon 的 Elasticsearch Service 时需要注意以下几点:
修改访问策略需要 non-deterministic 时间。我发现在更改策略后状态不再 "processing" 后至少等待 15 分钟是好的。
它在端口 80 上侦听 HTTP 请求,而不是标准端口 9200。确保您的
elasticsearch_url
配置指令反映了这一点,例如:elasticsearch_url: "http://es.example.co:80"
您的 Kibana 实例很可能没有必要的权限来创建向您显示仪表板所需的索引——这是问题的根源。检查 Elasticsearch 域上的索引并查找与
kibana_index
配置指令匹配的行(例如通过 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 link,它可能会为您创建一个 .kibana-4
索引。
您可以在现有 Kibana 的配置中指定此索引,您应该会看到下一点。
您现有的 Kibana 安装可能需要通过 header:
进行身份验证Kibana:授权 header 需要 'Credential' 参数。授权 header 需要 'Signature' 参数。授权 header 需要 'SignedHeaders' 参数。授权 header 需要存在 'X-Amz-Date' 或 'Date' header。
您可以在 Kibana 中进行配置,并可以查看常规 signing API request documentation 以获得更多帮助。
值得注意的是,据报道,Kibana 4.2 中的错误消息更好,但由于它处于测试阶段并且 Amazon 的 Elasticsearch Service 最近发布,以上内容应该有助于调试。