2013-05-08 27 views
26

Ho installato la ricerca elastica nel mio computer locale, voglio configurarlo come l'unico nodo singolo nel cluster (server autonomo). significa che ogni volta che creo un nuovo indice, sarà disponibile solo per il mio server. Non sarà accessibile al server di altri.Come configurare il nodo singolo per il cluster singolo (cluster autonomo) ElasticSearch

Nel mio scenario corrente questi indici sono disponibili per altri server (i server sono formati in un cluster) e possono apportare modifiche ai miei indici. Ma io non lo voglio.

Ho seguito altri blog ma non ho trovato la soluzione migliore. Quindi, per favore, fammi sapere i passaggi per lo stesso?

+2

In alternativa è possibile modificare il nome del cluster del server. – bhdrkn

risposta

55

Ho la risposta dal http://elasticsearch-users.115913.n3.nabble.com/How-to-isolate-elastic-search-node-from-other-nodes-td3977389.html.

Kimchy: il nodo viene impostato su locale (true), questo significa che non verrà rilevato nessun altro nodo utilizzando la rete, ma solo all'interno della stessa JVM.

nel file di elasticsearch/bin/elasticsearch.yml

node.local: true # disable network 
+9

È documentato ovunque nel riferimento ufficiale? – tuespetre

+4

non è documentato, come una metà delle "funzionalità" elasticsearch –

+1

'node.local' è stato dichiarato obsoleto. Vedi la risposta @ felix-borzik qui sotto. – jevonearth

14

Se stai usando un trasporto di rete nel codice, questo non funzionerà, come node.local ti dà una LocalTransport solo:

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

Il trucco è quindi di impostare

discovery.zen.ping.multicast: false

nel tuo elasticsearch.yml che interromperà il tuo nodo alla ricerca di altri nodi.

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

Non sono sicuro se questo impedisce altri nodi di scoprire la vostra però; Ho solo bisogno di questo per influenzare un gruppo di nodi con le stesse impostazioni sulla stessa rete.

+0

Non funziona su ElasticSearch 5. – iceberg

+0

Vedere [questa risposta] (https://stackoverflow.com/a/45263329/368683) per ElasticSearch 5.0 e versioni successive. – 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 

Utilizzare la stessa configurazione nel codice.

anche per isolare l'uso del nodo node.local: true o discovery.zen.ping.multicast: false

+4

Non funziona su ElasticSearch 5. – Raptor

+0

Vedere [questa risposta] (https://stackoverflow.com/a/45263329/368683) per ElasticSearch 5.0 e versioni successive. – user368683

0

Tutti questi hanno ragione't mi aiuta (e io purtroppo hanno ragione't Leggi la risposta di bhdrkn). La cosa che ha funzionato per me è stata la modifica del nome cluster di elasticsearch ogni volta che ho bisogno di avere un'istanza separata, in cui i nuovi nodi non vengono aggiunti automaticamente tramite multicast.

Basta cambiare cluster.name: {{elasticsearch.clustername}} in elasticsearch.yml, ad es. via Ansible. Questo è particolarmente utile quando si costruiscono fasi separate come Dev, QA e Production (che è un usecase standard in ambienti aziendali).

E se stai usando logstash per ottenere i dati in elasticsearch, non dimenticate di mettere lo stesso cluster nome nella sezione di uscita, come:

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

Altrimenti la vostra "logstash- * "-index non verrà creato correttamente ...

6

Ecco rilevanti informazioni per elasticsearch 5:

Secondo changelog, per abilitare la modalità locale su ES 5 è necessario aggiungere al vostro transport.type: localelasticsearch.yml invece di node.local: true.

+0

Questo deve essere aggiornato. – jevonearth

+1

Questa risposta ha funzionato per me. Nota che alcune delle risposte più vecchie potrebbero essere obsolete. Ecco un link funzionante al sopra citato [changelog] (https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_settings_changes.html#_node_settings) – user368683

Problemi correlati