2017-10-13 3 views
1

Ich habe einen laufenden ElasticSearch Cluster und ich versuche, Kibana mit diesem Cluster (gleicher Knoten) zu verbinden. Derzeit hängt die Seite, wenn ich versuche, den Dienst in meinem Browser zu öffnen, indem ich:. . In meinem Kibana pod Protokollen sind die letzten Log-Meldungen in der Hülse:Verbinde Kibana mit elasticsearch in kubernetes Cluster

{"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"} 

Meine kibana.yml-Datei, die in die Kibana pod montiert wird, hat die folgende Konfiguration:

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 

und meine Elasticsearch .yml Datei hat die folgenden Konfigurationseinstellungen (ich habe 3 es Schoten)

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"] 

ich fühle mich wie das Problem derzeit mit dem network.host Feld ist, aber ich bin nicht sicher. Welche Felder fehlen/muss ich ändern, um eine Verbindung zu einem kibana pod zu elasticsearch herzustellen, wenn sie sich im selben Cluster/Knoten befinden? Vielen Dank!

ES Service:

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 

EDIT: Port 9200 in kibana.yml hier Nach dem Wechsel ist, was ich in den Protokollen am Ende sehen, wenn ich versuche und Zugriff 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

Könnten Sie Ihre Service-Definitionen posten? Du versuchst eine Verbindung zu "elasticsearch.default: 9300" herzustellen, aber es ist unklar, ob du dies als Dienst richtig dargestellt hast. – vascop

+0

sure thing, bearbeitet meinen Beitrag, um die Service-Definitionen hinzuzufügen, änderte ich auch meine Datei elasticsearch: 9300 anstelle der Standard – appdap1

Antwort

2

Das Problem hier ist, dass Sie Elasticsearch auf Port ausgesetzt 9200, aber versuchen, eine Verbindung zu Port 9300 in Ihrer kibana.yml-Datei herzustellen.

entweder Sie benötigen kibana.yml Datei bearbeiten zu verwenden:

elasticsearch.url: http://elasticsearch:9200 

Oder ändern Sie den Port in dem Elasticsearch Dienst 9300.

+0

Oh Mann, ich muss starrte auf dies zu lange, ich habe das komplett vermisst. Vielen Dank! Aber das Ändern des Ports scheint nicht verändert zu haben, das Ergebnis hängt immer noch – appdap1

+0

Wenn ich versuche und kibana mit 'minikube service kibana' zugreifen sehe ich eine Fehlermeldung (Siehe bearbeiten) – appdap1

+0

Ihre 3 es Pods werden durch Port 9300 entdeckt. Haben Sie diesen Port mit einem Dienst verfügbar gemacht? Es ist auch sehr schlecht, Pod-IPs so zu kodieren. Hast du Statefulsets betrachtet? – vascop

Verwandte Themen