definicion - elasticsearch scroll pagination
Cómo configurar un nodo individual para clúster único(clúster independiente) ElasticSearch (8)
Instalé la búsqueda elástica en mi máquina local, quiero configurarlo como el único nodo único en el clúster (Servidor independiente). significa que cada vez que creo un nuevo índice, solo estará disponible para mi servidor. No será accesible para el servidor de otro.
Mi escenario actual estos índices están disponibles para otros servidores (los servidores están formados en un clúster) y pueden realizar cambios en mis índices. Pero no lo quiero
Revisé otros blogs pero no obtuve la mejor solución. Entonces, ¿puedes dejarme saber los pasos para el mismo?
En 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
Usa la misma configuración en tu código.
También para aislar el nodo use node.local: true
o discovery.zen.ping.multicast: false
Esto resuelve tu problema:
PUT /_all/_settings
{"index.number_of_replicas":0}
Probado con ES versión 5.
Quería hacer esto sin tener que escribir / sobrescribir un elasticsearch.yml en mi contenedor. Aquí está sin un archivo de configuración
Establezca una variable de entorno antes de comenzar elasticsearch:
discovery.type=single-node
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
Si está utilizando un transporte de red en su código, esto no funcionará, ya que node.local
le proporciona un LocalTransport únicamente:
El truco es establecer
discovery.zen.ping.multicast: false
en su elasticsearch.yml
que detendrá su nodo buscando otros nodos.
No estoy seguro de si esto impide que otros nodos descubran el tuyo; Solo necesitaba que esto afectara a un grupo de nodos con la misma configuración en la misma red.
Si tiene la intención de ejecutar Elasticseach en un solo nodo y poder vincularlo a IP pública, dos ajustes importantes son:
network.host: <PRIVATE IP OF HOST>
discovery.type: single-node
Tengo la respuesta de http://elasticsearch-users.115913.n3.nabble.com/How-to-isolate-elastic-search-node-from-other-nodes-td3977389.html .
Kimchy: estableces el nodo en local (verdadero), esto significa que no descubrirá otros nodos usando la red, solo dentro de la misma JVM.
en el archivo elasticsearch / bin / elasticsearch.yml
node.local: true # disable network
Todos estos no me ayudaron (y lamentablemente no leí la respuesta de bhdrkn). Lo que funcionó para mí fue cambiar el nombre de clúster de elasticsearch cada vez que necesito tener una instancia separada, donde los nuevos nodos no se agregan automáticamente a través de multidifusión.
Simplemente cambie cluster.name: {{elasticsearch.clustername}} en elasticsearch.yml, por ejemplo, a través de Ansible. Esto es particularmente útil cuando se crean etapas separadas como Dev, QA y Producción (que es un caso de uso estándar en entornos empresariales).
Y si está utilizando logstash para obtener sus datos en elasticsearch, no olvide poner el mismo nombre de clúster en la sección de salida, como:
output {
elasticsearch {
cluster => "{{ elasticsearch.clustername }}"
}
}
De lo contrario, su índice "logstash - *" no se compilará correctamente ...