2013-05-08 3 views
26

Ich habe elastische Suche in meinem lokalen Rechner installiert, ich möchte es als den einzigen Knoten im Cluster (Standalone Server) konfigurieren. Das bedeutet, dass ich immer einen neuen Index erstelle, der nur für meinen Server verfügbar ist. Es ist nicht für andere Server zugänglich.Wie konfiguriere ich Single-Knoten für einzelne Cluster (Standalone Cluster) ElasticSearch

Mein aktuelles Szenario diese Indizes sind für andere Server verfügbar (die Server sind in einem Cluster gebildet), und sie können Änderungen an meinen Indizes vornehmen. Aber ich will es nicht.

Ich ging durch einige andere Blogs, aber nicht die beste Lösung. Kannst du mir bitte Schritte für dasselbe mitteilen?

+2

Alternativ können Sie den Clusternamen Ihres Servers ändern. – bhdrkn

Antwort

55

Ich habe die Antwort von http://elasticsearch-users.115913.n3.nabble.com/How-to-isolate-elastic-search-node-from-other-nodes-td3977389.html.

Kimchy: Sie legen den Knoten auf local (true) fest, das bedeutet, dass er andere Knoten, die das Netzwerk verwenden, nur innerhalb derselben JVM nicht findet.

in Elasticsearch/bin/elasticsearch.yml Datei

node.local: true # disable network 
+9

Wird dies irgendwo in der offiziellen Referenz dokumentiert? – tuespetre

+4

es ist nicht dokumentiert, wie eine Hälfte von elasticsearch "Features" –

+1

'node.local' wurde veraltet. Siehe @ felix-borzik Antwort unten. – jevonearth

14

Wenn Sie ein Netzwerktransport in Ihrem Code verwenden, das wird nicht funktionieren, da node.local Sie LocalTransport gibt nur:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-transport.html#_local_transport

Der Trick dann setzen, ist

discovery.zen.ping.multicast: false

in Ihrem elasticsearch.yml, die Ihren Knoten auf der Suche nach anderen Knoten stoppen wird.

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-zen.html#multicast

Ich bin mir nicht sicher, ob dies von anderen Knoten verhindert Ihr obwohl entdecken; Ich brauchte das nur, um eine Gruppe von Knoten mit den gleichen Einstellungen im selben Netzwerk zu beeinflussen.

+0

Funktioniert nicht mit ElasticSearch 5. – iceberg

+0

Siehe [diese Antwort] (https://Stackoverflow.com/a/45263329/368683) für ElasticSearch 5.0 und höher. – user368683

19

In elasticsearch.yml

# Note, that for development on a local machine, with small indices, it usually 
# makes sense to "disable" the distributed features: 
# 
index.number_of_shards: 1 
index.number_of_replicas: 0 

die gleiche Konfiguration in Ihrem Code verwenden.

auch den Knoten Verwendung node.local: true oder discovery.zen.ping.multicast: false

+4

Funktioniert nicht mit ElasticSearch 5. – Raptor

+0

Siehe [diese Antwort] (https://stackoverflow.com/a/45263329/368683) für ElasticSearch 5.0 und höher. – user368683

0

Alle diese helfen mir Artikel nicht (und ich leider Artikel nicht lesen Sie die Antwort von bhdrkn) zu isolieren. Die Sache, die für mich funktionierte, war, den clusternamen von elasticsearch jedes Mal zu ändern, wenn ich eine separate Instanz brauche, bei der neue Knoten nicht automatisch per Multicast hinzugefügt werden.

Ändern Sie einfach cluster.name: {{elasticsearch.clustername}} in elasticsearch.yml, z. über Ansible. Dies ist besonders hilfreich, wenn Sie separate Stages wie Dev, QA und Production erstellen (was ein Standard-Anwendungsfall in Enterprise-Umgebungen ist).

Und wenn du bist logstash Nutzung Ihrer Daten in Elasticsearch zu bekommen, vergessen Sie nicht den gleichen Cluster-Namen in den Ausgabeschnitt zu stellen, wie:

output { 
    elasticsearch { 
     cluster => "{{ elasticsearch.clustername }}" 
    } 
} 

Andernfalls wird Ihr „logstash- * "-index wird nicht korrekt erstellt ...

6

Hier relevante Informationen für Elasticsearch 5:

Nach changelog, auf ES lokalen Modus zu aktivieren 5 müssen Sie transport.type: local auf Ihre elasticsearch.yml statt node.local: true hinzuzufügen.

+0

Dies muss neu gewählt werden. – jevonearth

+1

Diese Antwort funktionierte für mich. Beachten Sie, dass einige der älteren Antworten möglicherweise veraltet sind. Hier ist ein funktionierender Link zum oben erwähnten [changelog] (https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_settings_changes.html#_node_settings) – user368683

Verwandte Themen