Kibana将无法连接到Amazon的Elasticsearch Service上的Elasticsearch

2 amazon-web-services kibana amazon-elasticsearch

从托管我自己的Elastiscsearch集群切换到亚马逊的Elasticsearch服务后,我的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
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这个错误不是很有帮助.我认为它是一个包装的HTTP 404,但为了什么?

如何将Kibana安装连接到Amazon的Elasticsearch Service?

小智 5

使用亚马逊的Elasticsearch Service时,请注意以下几点:

  1. 对访问策略的修改需要非确定的时间量.我发现在进行政策更改后状态不再"处理"后至少等待15分钟是件好事.

  2. 它在端口80上侦听HTTP请求而不是标准端口9200.确保elasticsearch_url配置指令反映了这一点,例如:

    elasticsearch_url:" http://es.example.co:80 "

  3. 您的Kibana实例很可能没有必要的权限来创建向您显示仪表板所需的索引 - 这是问题的根源.查看Elasticsearch域上的索引,并查找与kibana_indexconfig指令匹配的行(例如,通过http://es.example.co/_cat/indices).

例如,如果您的kibana_index指令是值.kibana-4,如果您没有看到如下所示的行:

green open .kibana-4           1 1      3 2  30.3kb  17.2kb
Run Code Online (Sandbox Code Playgroud)

那么你的Kibana索引无法创建它所需的索引.如果您转到亚马逊Elasticsearch服务的仪表板并单击Kibana链接,它可能会.kibana-4为您创建索引.

您可以在现有的Kibana配置中指定此索引,您应该看到下一个要点.

  1. 您现有的Kibana安装可能需要通过标头进行身份验证:

    Kibana:授权标题需要'Credential'参数.授权标头需要"签名"参数.授权标头需要'SignedHeaders'参数.授权标头需要存在'X-Amz-Date'或'Date'标头.

您可以在Kibana中进行配置,并可以查看常规签名API请求文档以获取更多帮助.

值得注意的是,在Kibana 4.2中,错误消息传递更好,但由于它处于测试阶段且亚马逊的Elasticsearch Service最近刚刚发布,因此上述内容应该有助于调试.