2017-10-13 8 views
1

저는 실행중인 elasticsearch 클러스터가 있고이 클러스터 (동일한 노드)에 kibana를 연결하려고합니다. 현재 브라우저를 사용하여 서비스를 열려고하면 페이지가 중단됩니다. . 내 키바 포드 로그에서 포드의 마지막 몇 로그 메시지는 다음과 같습니다kubernetes 클러스터의 kickana를 elasticsearch에 연결하십시오.

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 다음 키바 포드에 장착

{"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 파일은 다음과 같은 설정을 가지고 .yml 파일은 문제가 network.host 필드가 현재 같은 느낌 다음과 같은 구성 설정 (I 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"] 

을 가지고하지만 난 모르겠어요. kobana pod와 elasticsearch가 동일한 클러스터/노드에있는 경우 연결하기 위해 수정해야 할 필드는 무엇입니까? 감사!

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 

키바 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 서비스의 포트를 변경 : 당신이 중 하나를 사용하도록 kibana.yml 파일을 편집해야

? "elasticsearch.default : 9300"에 연결하려고 시도하고 있지만 서비스로 제대로 노출했는지 여부는 확실하지 않습니다. – vascop

+0

확실한 것, 서비스 정의를 추가하기 위해 내 게시물을 편집했습니다. 또한 elasticsearch를 사용하도록 파일을 변경했습니다 : 기본값을 추가하는 대신 9300 – appdap1

답변

2

여기에서 문제는 사용자가 Elasticsearch on port 9200이지만 kibana.yml 파일의 포트 9300에 연결하려고합니다. 당신이 당신의 서비스 정의를 게시 할 수

elasticsearch.url: http://elasticsearch:9200 

또는 9300

+0

오, 나는 오랫동안 이것을 꼼짝 않고 바라 보았을 것입니다. 감사! 그러나 포트를 변경해도 결과가 변경되지 않은 것 같습니다. – appdap1

+0

'minikube service kibana'를 사용하여 kibana에 액세스하려고하면 오류 메시지 (편집 참조)가 표시됩니다. – appdap1

+0

포트 9300을 통해 3 개의 포드가 검색되고 있습니다. 해당 포트에 서비스를 제공 했습니까? 또한 그런 포드 IP를 하드 코딩하는 것은 매우 형편 없습니다. statefulsets을 들여다 보았습니까? – vascop