2017-07-27 5 views
0

Ich habe Graylog auf einem Kubernetes-Cluster implementiert und alles funktionierte einwandfrei, bis ich beschloss, eine Umgebungsvariable hinzuzufügen und die Graylog-Bereitstellung zu aktualisieren.Graylog kann keine Verbindung zu Elasticsearch in Kubernetes-Cluster herstellen

Jetzt haben einige Dinge aufgehört zu arbeiten. Ich kann sehen, dass alle Eingaben ausgeführt werden und sie akzeptieren Nachrichten:

enter image description here

aber wenn ich versuche, um die empfangenen Nachrichten zu sehen, gibt es 500 Fehler mit der folgenden Meldung:

a

The docs sagen, dass der Graylog Behälter einen Dienst elasticsearch genannt braucht

docker run --link some-mongo:mongo --link some-elasticsearch:elasticsearch -p 9000:9000 -e GRAYLOG_WEB_ENDPOINT_URI="http://127.0.0.1:9000/api" -d graylog2/server 

Und wenn ich an die graylog pod befestigen und kräuseln elasticsearch:9200, ich sehe ein erfolgreiches Ergebnis:

{ 
    "name" : "Vixen", 
    "cluster_name" : "graylog", 
    "cluster_uuid" : "TkZtckzGTnSu3JjERQNf4g", 
    "version" : { 
    "number" : "2.4.4", 
    "build_hash" : "fcbb46dfd45562a9cf00c604b30849a6dec6b017", 
    "build_timestamp" : "2017-01-03T11:33:16Z", 
    "build_snapshot" : false, 
    "lucene_version" : "5.5.2" 
    }, 
    "tagline" : "You Know, for Search" 
} 

Aber wenn die graylog Protokolle sagen, dass es auf den lokalen Host zu verbinden versucht:

enter image description here

Auch hier funktionierte alles bis heute. Warum versucht es eine Verbindung zum Localhost, nicht zum Elastic Search Service?

Antwort

1

Sieht aus wie es ein Versionsproblem war. Ich habe den Graylog-Container auf die vorherige stabile Version heruntergestuft: 2.2.3-1 und es hat wieder angefangen zu arbeiten.

Meine Vermutung ist, dass, wenn ich die Bilder heute aktualisiert, es die neueste Version gezogen, die

0

Sie können versuchen elastichost in den graylog.conf

https://github.com/Graylog2/graylog2-server/blob/master/misc/graylog.conf

in Zeile 172

# List of Elasticsearch hosts Graylog should connect to. 
# Need to be specified as a comma-separated list of valid URIs for the http ports of your elasticsearch nodes. 
# If one or more of your elasticsearch hosts require authentication, include the credentials in each node URI that 
# requires authentication. 
# 
# Default: http://127.0.0.1:9200 
#elasticsearch_hosts = http://node1:9200,http://user:[email protected]:19200 

Sie Ihre eigenen graylog.conf machen können und diese dann zu Ihrem dockerfile hinzufügen bauen damit.

0

Eigentlich einige Dinge beschädigt, Graylog zu HTTP-API in Graylog 2.3 verschoben hat. Daher hat sich die Methode zum Herstellen einer Verbindung zum Elasticsearch-Cluster geändert. Sie können nun die IP-Adressen der ES-Knoten anstelle von zen_ping_unicast_hosts angeben. Dies ist der Commit, der diese Einstellung geändert hat - https://github.com/Graylog2/graylog2-server/commit/4213a2257429b6a0803ab1b52c39a6a35fbde889.

Damit können wir auch den AWS ES-Dienst verbinden, was früher nicht möglich war. In diesem Diskussionsfaden erhalten Sie mehr Einblicke - https://github.com/Graylog2/graylog2-server/issues/1473

Verwandte Themen