将kibana连接到kubernetes集群中的elasticsearch

问题描述:

我有一个正在运行的elasticsearch集群,我试图将kibana连接到这个集群(同一节点)。目前,当我尝试在我的浏览器中使用以下命令打开服务时,页面会挂起。 。在我kibana荚日志,在POD的最后几个日志消息:被安装到kibana荚将kibana连接到kubernetes集群中的elasticsearch

{"type":"log","@timestamp":"2017-10-13T17:23:46Z","tags":["listening","info"],"pid":1,"message":"Server running at http://0.0.0.0:5601"} 
{"type":"log","@timestamp":"2017-10-13T17:23:46Z","tags":["status","ui settings","error"],"pid":1,"state":"red","message":"Status changed from uninitialized to red - Elasticsearch plugin is red","prevState":"uninitialized","prevMsg":"uninitialized"} 
{"type":"log","@timestamp":"2017-10-13T17:23:49Z","tags":["status","plugin:[email protected]","error"],"pid":1,"state":"red","message":"Status changed from yellow to red - Request Timeout after 3000ms","prevState":"yellow","prevMsg":"Waiting for Elasticsearch"} 

我kibana.yml文件具有以下配置:

server.name: kibana-logging 
server.host: 0.0.0.0 
elasticsearch.url: http://elasticsearch:9300 
xpack.security.enabled: false 
xpack.monitoring.ui.container.elasticsearch.enabled: true 

和我elasticsearch .yml文件具有以下配置设置(我有3种ES荚)

cluster.name: elasticsearch-logs 
node.name: ${HOSTNAME} 
network.host: 0.0.0.0 

bootstrap.memory_lock: false 
xpack.security.enabled: false 
discovery.zen.minimum_master_nodes: 2 
discovery.zen.ping.unicast.hosts: ["172.17.0.3:9300", "172.17.0.4:9300", "172.17.0.4:9300"] 

我觉得这个问题是目前与network.host领域,但我不知道。我缺少什么字段/是否需要修改以便连接到弹性搜索的kibana容器,如果它们在同一集群/节点中?谢谢!

ES服务:

apiVersion: v1 
kind: Service 
metadata: 
    name: elasticsearch 
    labels: 
    component: elasticsearch 
    role: master 
spec: 
    type: NodePort 
    selector: 
    component: elasticsearch 
    role: master 
    ports: 
    - name: http 
    port: 9200 
    targetPort: 9200 
    nodePort: 30303 
    protocol: TCP 

Kibana SVC

apiVersion: v1 
kind: Service 
metadata: 
    name: kibana 
    namespace: default 
    labels: 
    component: kibana 
spec: 
    type: NodePort 
    selector: 
    component: kibana 
    ports: 
    - port: 80 
    targetPort: 5601 
    protocol: TCP 

编辑: 在这里kibana.yml改变端口9200后是我在日志在年底看到当我尝试访问kibana:

{"type":"log","@timestamp":"2017-10-13T21:36:30Z","tags":["listening","info"],"pid":1,"message":"Server running at http://0.0.0.0:5601"} 
{"type":"log","@timestamp":"2017-10-13T21:36:30Z","tags":["status","ui settings","error"],"pid":1,"state":"red","message":"Status changed from uninitialized to red - Elasticsearch plugin is red","prevState":"uninitialized","prevMsg":"uninitialized"} 
{"type":"log","@timestamp":"2017-10-13T21:36:33Z","tags":["status","plugin:[email protected]","error"],"pid":1,"state":"red","message":"Status changed from yellow to red - Request Timeout after 3000ms","prevState":"yellow","prevMsg":"Waiting for Elasticsearch"} 
{"type":"log","@timestamp":"2017-10-13T21:37:02Z","tags":["error","elasticsearch","admin"],"pid":1,"message":"Request error, retrying\nPOST http://elasticsearch:9200/.reporting-*/esqueue/_search?version=true => getaddrinfo ENOTFOUND elasticsearch elasticsearch:9200"} 
{"type":"log","@timestamp":"2017-10-13T21:37:32Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://elasticsearch:9200/"} 
{"type":"log","@timestamp":"2017-10-13T21:37:33Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://elasticsearch:9200/"} 
{"type":"log","@timestamp":"2017-10-13T21:37:37Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://elasticsearch:9200/"} 
{"type":"log","@timestamp":"2017-10-13T21:37:38Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://elasticsearch:9200/"} 
{"type":"log","@timestamp":"2017-10-13T21:37:42Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://elasticsearch:9200/"} 
+0

你可以发布你的服务定义?您正尝试连接到“elasticsearch.default:9300”,但是您是否已将此作为服务正确公开,尚不清楚。 – vascop

+0

当然,编辑我的帖子来添加服务定义,我也改变了我的文件使用elasticsearch:9300,而不是添加默认 – appdap1

这里的问题是你在端口上暴露Elasticsearch 9200,但正试图连接到您的kibana.yml文件中的端口9300。

你要么需要修改kibana.yml文件中使用:

elasticsearch.url: http://elasticsearch:9200 

还是在elasticsearch服务端口更改为9300

+0

哦,男人,我一直盯着这太久,我完全错过了。谢谢!然而,改变端口似乎没有改变,结果仍然挂起 – appdap1

+0

当我尝试使用'minikube service kibana'访问kibana时,我看到一条错误消息(请参阅编辑) – appdap1

+0

您的3个端口通过端口9300发现。你有暴露该服务的端口吗?此外,对这种pod IP进行硬编码也是非常糟糕的做法。你看过有状态组吗? – vascop