Correr Elasticsearch en un clúster en Azure
1 de octubre de, 2013 · por · en
En este post voy a compartir la creación de Elasticsearch en una configuración en clúster de máquinas virtuales, que se ejecuta en Windows Azure mis experiencias. Yo uso este enfoque para la celebración de Elasticsearch en mi SaaS inicio. Renuncia: esto es de ninguna manera una guía oficial sobre cómo configurar Elasticsearch en un clúster. Mi experiencia con la replicación en Elasticsearch es bastante limitado, y sólo ahora hemos descubierto la forma virtual de redes de trabajo en Windows Azure. Use esta guía para la inspiración y me gustaría obtener alguna información sobre el enfoque utilizado. Si usted no tiene acceso a Azure, hay una versión de prueba gratuita disponible en la página principal:. Obtendrá 30 días de Azure con un máximo de $ 200 en los servicios. La fijación de precios en Azure siempre ha sido una pesadilla, pero $ 200 siempre deberá hacer muy bien con el fin de jugar con un par de máquinas virtuales. Cuando firmado y en, empezar por crear una nueva red virtual: Introduzca un nombre y crear un nuevo grupo de afinidad. Por ahora nos limitaremos a los valores de entrada y discutir los detalles más adelante: En los servidores DNSy VPN Conectividad paso basta con hacer clic en Siguiente y Azure controlará el DNS. El paso final debe ser algo como esto: Cuando haya terminado, haga clic en la marca de verificación completa. Así que vamos a retroceder y hablar de lo que hemos hecho aquí. La red virtual no es necesario para que Elasticsearch para trabajar, pero hace que sea un infierno de mucho más fácil, ya que todas las máquinas virtuales en la misma red podrán comunicarse entre sí, sin que usted debe preocuparse de nada de lo permitiendo las conexiones a través del cortafuegos. Más sobre esto más adelante. No voy a entrar en detalles sobre el grupo de afinidad, pero se puede leer una gran introducción a los grupos de afinidad sobre el Azure aquí:. Basta pensar en el grupo de afinidad como un único contenedor de Microsoft. Tener todos sus servicios en el mismo recipiente, mejora el rendimiento cuando se comunican entre diferentes ordenadores dentro de ese contenedor. Elasticsearch requiere un poco de hierro a ejecutar. Vamos a crear una nueva máquina virtual: Queremos un centro de datos de la ediciónVentanas para ejecutar nuestro cluster: Déle un nombre de máquina virtual y elegir un tamaño de su elección: En el siguiente paso, vamos a utilizar la nueva red virtual que acabamos de crear. Pero antes de eso, seleccione la opción de un nuevo servicio en la nube de la caja de selección Cloud Service Crear. Servicios en la nube es una cosa divertida en Azure, ya que se asigna a la vez una forma de implementar sitios web (roles web) y trabajos en segundo plano (roles de los trabajadores), así como para escalar otros servicios como máquinas virtuales. En el cuadro de selección de red virtual, seleccione la red elasticsearch-cluster o lo que decidió darle un nombre: Dejar los puntos finales como está y haga clic en la marca de verificación completa: Unos minutos más tarde, su máquina virtual estará en funcionamiento. Podríamos seguir e instalar Elasticsearch ahora, pero una máquina no huele como un clúster, ¿verdad? Lo has adivinado lo siguiente: más máquinas virtuales! Siempre he considerado dos nodos que ejecutan una pieza de software en un clúster como seguro, pero mi tiempo en eBay me enseñó, que siempre querrías tres nodos de un clúster. Susprobablemente un tema de debate, pero con sólo dos nodos en realidad no lo convierten en un cúmulo cada vez que necesita para tomar uno para remendar o similar. Es por eso que creamos dos máquinas virtuales adicionales. Los pasos son exactamente el mismo que el anterior, excepto el cuadro de selección de servicio de la nube en la que debe elegir el servicio en la nube es-VMS que ya ha creado. Estoy asumiendo que usted tiene en funcionamiento tres de VM: Ahora viene la parte aburrida: la instalación de Elasticsearch. En realidad es bastante simple, pero no voy a entrar en detalles sobre el mismo, ya que está bastante bien documentada aquí en la parte de instalación aquí:. Es posible argumentar que podíamos hacer con la instalación de Elasticsearch en una sola máquina virtual y utilizarlo como una plantilla para las otras dos máquinas virtuales. ¡Tienes razón! Azure admite la creación de nuevas máquinas virtuales a partir de discos virtuales existentes, pero nunca he intentado, ¿por qué no quiero escribir algo de basura. Por ahora sólo tiene que instalar en el Elasticsearch tres máquinas virtuales. Recuerde que cuando me dijeron que las ventajas sobre todo añadido de las máquinas virtuales a la misma red virtual?Bueno, ahora es el momento de recoger. Elasticsearch es compatible con diferentes tipos de descubrimiento, que en palabras sencillas hace varias instancias Elasticsearch se comuniquen entre sí. El tipo predeterminado de descubrimiento es de multidifusión en el que no es necesario configurar nada. Por desgracia, no parece multidifusión para trabajar en Azure (aún), ¿por qué tenemos que configurar esto usando unicast. En cada máquina virtual, abra el elasticsearch.yml situado en el directorio de configuración de Elasticsearch y busque "# discovery.zen.ping.multicast.enabled: true". Con el fin de utilizar Elasticsearch unicast, descomenta esta línea. También necesita configurar las IPs de los otros casos Elasticsearch en nuestra red virtual. En mi caso, la siguiente línea hace el truco: discovery.zen.ping.unicast.hosts: [ "10.0.0.4", "10.0.0.5", "10.0.0.6"] direcciones IP visible desde el salpicadero de cada VM . Asegúrese de que selecciona las direcciones IP internas. Por último es necesario especificar el mismo nombre de la agrupación de todas las instancias que utilizan esta línea: cluster.name: elasticsearchElasticsearch comunica entre los nodos en el puerto 9300 y acepta conexiones desde el exterior en el puerto 9200, por las que necesita para permitir el acceso de entrada en estos puertos en Firewall de Windows. Copia el elasticsearch.yml la vuelta y empezar Elasticsearch en todas las máquinas virtuales. ¡Felicitaciones! Ahora tiene su primera Elasticsearch clúster en funcionamiento. Para comunicarse con el nuevo clúster de un sitio web Azure o algo fuera de los centros de datos de Microsofts, es necesario el acceso al puerto de puerto 9200 en todas las máquinas virtuales. Si usted examina las direcciones IP públicas Si las tres máquinas virtuales se dará cuenta, que es el mismo. Los tres casos Elasticsearch serán capaces de manejar las solicitudes en esta IP, pero con el fin de hacerlo, es necesario configurar el equilibrio de carga en Azure. El equilibrio de carga en azul se lleva a cabo de una manera sencilla real a través de puntos finales. Vaya a la pestaña puntos finales de una de sus máquinas virtuales y crear un nuevo punto final: En el siguiente paso de entrada un nombre y el puerto 9200 en tanto pública como privada Puerto. Asegúrese de revisar la Crear una cargaconjunto equilibrado: En el paso final asignar un nombre al nuevo punto final de carga equilibrada y aceptar los valores por defecto en el resto de los campos: Lo único que falta es crear el mismo punto final en las dos máquinas virtuales restantes. Recuerde que debe seleccionar el conjunto equilibrado de carga existente al crear los nuevos criterios de valoración. Esto hace que el equilibrio de carga Azure solicitud entrante al puerto 9200 de la IP de las máquinas virtuales. En mi configuración He instalado el plugin Cabeza de Elasticsearch, lo que hace posible la visualización de un nuevo índice en mi grupo para ustedes:
Etiquetas:,