Archivo de la etiqueta: virtualización

Trabajar con elasticsearch mediante docker

Trabajar con elasticsearch, sobre todo para entornos de pruebas, es mucho más fácil con el contenedor Docker que Elasticseacrh nos facilita.

Las ventajas del uso de contenedores es evidente, fácil portabilidad, bajo uso de recursos, etc. Por ello, muchas de las grandes empresas de software están creando este tipo de contenedores para facilitar la implementación de sus productos.

Descarga del contendor de Elasticsearch

En el caso de Elasticsearch, podemos obtener este contenedor fácilmente desde el propio hub de Docker. Para descargarlo en nuestra máquina solo tendremos que ejecutar el siguiente comando.

docker pull docker.elastic.co/elasticsearch/elasticsearch:X.XX.X

Sustituiremos X.XX.X por el número de versión que deseemos instalar.

Podemos ver las versiones disponibles en está página de Elasticsearch (https://www.docker.elastic.co/r/elasticsearch). Tambien podes ver las versiones disponibles, desde la propia página del hub de docker (https://hub.docker.com/_/elasticsearch?tab=tags)

Para descargar la ultima versión disponible en el momento de escribir este post, tendríamos que ejecutar el siguiente comando.

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.13.4

Una vez que ha concluido la descarga y la instalación

$ sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:7.13.4
7.13.4: Pulling from elasticsearch/elasticsearch
ddf49b9115d7: Pull complete
67831602c5f6: Pull complete
e9244a58c58a: Pull complete
02513d648eec: Pull complete
2a31f6c80f77: Pull complete
9022d53d3571: Pull complete
3fc2a72e96e7: Pull complete
Digest: sha256:70e5f2454148f16385ffbc1b1fb71f3a171a8ef8665c8b482235656678b7df93
Status: Downloaded newer image for docker.elastic.co/elasticsearch/elasticsearch:7.13.4
docker.elastic.co/elasticsearch/elasticsearch:7.13.4

Ejecución del contenedor de Elasticsearch

Lanzaremos la ejecución del contenedor, para ello ejecutaremos el siguiente comando.

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.13.4

El comando configurara la ejecución, activando el enrutado de los puertos 9200 y 9300 desde nuestra máquina, al contenedor. Además, establece el servidor de elasticsearch en modo autónomo.

En la pantalla nos aparece la salida del log de elasticsearch.

Si queremos pararla, solo tendremos que pulsar la combinación de teclas Ctrl-C. Puede que a la primera no responda, pulsaremos varias veces hasta que se pare. También, lo podremos parar, abriendo otra terminal, y ejecutando el siguiente comando

$ sudo docker stop <nombre_imagen>

Para saber como se llama nuestro contenedor podemos lanzar el siguiente comando para ver las imágenes que tenemos en ejecución

$ docker ps

Una vez que lo hemos parado, no tenemos que volver a ejecutar el comando «docker run», simplemente con iniciar nuestro contenedor, sera  suficiente. Esto lo podemos hacer con el siguiente comando.

$ sudo docker start <nombre_imagen>

Podemos personalizar el nombre de nuestra imagen agregando el siguiente argumento al comando «docker run»

--name <nombre_imagen>

El comando «docker run» nos quedaría de la siguiente forma.

$ sudo docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elastic_prueba docker.elastic.co/elasticsearch/elasticsearch:7.13.4

Prueba de funcionamiento de Elasticsearch

Para probar que nuestro servidor de elasticsearch está funcionado, y responde correctamente, podemos lanzar el siguiente comando.

$ curl -X GET "localhost:9200/?pretty"

Y si todo es correcto, y nuestro contenedor está funcionado correctamente, obtendremos una respuesta parecida a la siguiente.

{
"name" : "1c1a4c8db052",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "lg2UQNHASCGozGjkaAV12g",
"version" : {
"number" : "7.13.4",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "c5f60e894ca0c61cdbae4f5a686d9f08bcefc942",
"build_date" : "2021-07-14T18:33:36.673943207Z",
"build_snapshot" : false,
"lucene_version" : "8.8.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

Problemas de consumo de memória de Elastic

El consumo de la memoria de Elaticsearch puede ser muy grande, dejando a la máquina host casi sin recursos. Para evitar este escenario, podemos establece un limite de uso de memoria para el elastic dentro del contenedor.

Para establecer este límite, tendremos que establecer unas variables de entrono dentro de nuestro contenedor. Esto se realiza añadiendo el siguiente argumento al comando «docker run».

-e «ES_JAVA_OPTS=-Xms<Xg> -Xmx<Xg>»

Quedando nuestro comando de la siguiente forma para una configuración de uso de 3g de memoria para nuestro elasticsearch.

sudo docker run -p 9200:9200 -p 9300:9300 -e «discovery.type=single-node» -e «ES_JAVA_OPTS=-Xms3g -Xmx3g» –name elastic_prueba docker.elastic.co/elasticsearch/elasticsearch:7.13.4

Tambien podemos establecer este valor en megas, para ello solo tendremos que cambia la «g» del final por una m. Por ejemplo para establecer los mismos 3 gigas anteriores en megas, el comando quedaría de la siguiente forma:

sudo docker run -p 9200:9200 -p 9300:9300 -e «discovery.type=single-node» -e «ES_JAVA_OPTS=-Xms3072m -Xmx3072m» –name elastic_prueba docker.elastic.co/elasticsearch/elasticsearch:7.13.4

El valor recomendable para estos paŕámetros, son el 50% de la memoria de la que disponga la máquina host.

 

 

 

Crear maquinas virtuales con VirtualBox

Virtualbox_logoLos equipos actuales se suelen desaprovechar en un alto porcentaje, más de la mitad del tiempo, los equipos están sin hacer nada o en un porcentaje muy bajo de ocupación.

Para aprovechar estos tiempos se crearon unos programas que permiten poder instalar otro sistema operativo como si se estuviera ejecutando en la propia maquina, pero en realidad lo hace sobre una maquina virtual.

El funcionamiento de estos sistemas de es fácil, lo primero que hace falta es tener un sistemas anfitrión donde poder correr el programa de virtualización, estas maquinas no tiene por que tener un sistema operativo con los que normalmente conocemos (windows, linux, OSx, etc), puede ser unas pequeñas instrucciones en una memoria de la maquina que arranque las dispositivos y después llame al programa de virtualización. Luego están los sistemas invitados en los que podemos instalar desde la ultima versión de Windows 8.1, hasta MS-Dos con windows 3.1, cualquier versión de Linux o Unix, o OSx, IBM OS/2, etc.

En el mercado hay varias sistemas de virtualización, los más populares son VMWare, que copa casi todo el mercado, sobre todo para grandes sistemas, también tiene una versión para uso personal la VMWare Player. Luego esta VirtualBox, en la actualidad de Oracle y con una versión de software libre, esta es la versión que a mi personalmente más me gusta para pequeños sistemas. Microsoft también tiene su sistema de virtualización, pero este daba problemas cuando intentabas instalar alguna versión de Linux, eso si con los Windows no daba ningún problema, en la actualidad no se como trabaja.

VirtualBox lo podemos encontrar para cualquier sistema operativo, desde Linux, Windows o OSx. Solo tenemos en la pagina de VirtualBox y podemos descargar la versión para muestro sistemas.

Download VirtualBox

Una vez instalado ya podemos crear nuestro primer sistema virtual.

Para crear nuestro sistema virtual tenemos que asegurarnos de tener espacio suficiente en el disco duro para crear el fichero que contendrá el disco virtual, una copia del sistema operativo que queramos crear, puede ser en CD, DVD o una imagen ISO.

Arrancamos el programa de VirtualBox,

Ubuntu de pruebas - VirtualBox -1

Para crear nuestra maquina pulsamos en el botón de «Nueva», donde nos aparecerá esta venta. En la casilla de «Nombre» insertamos el nombre con con el que identificaremos nuestra maquina. Si el nombre hace referencia algún sistema operativo que reconozca el VirtualBox, este no cambiara automáticamente las casillas de «Tipo» y «Versión». Teniendo solo que verificar que la versión es la correcta. En el caso de que no la reconozca lo tendremos que hacer manualmente. En el caso de las distribuciones linux, posiblemente no se encuentre en las opciones disponibles, a no ser que sean una de las habituales, Ubuntu, Suse, OpenSuse, Debian, RedHat, etc. Si no aparece podemos  seleccionar la opción de » Other Linux (32 bit)» si es una versión de 32 bit, «Other Linux 64 bit» para una de 64 bit, o seleccionar la versión de la que se base esa distribución.

Captura de pantalla de 2015-01-29 13:38:47Lo siguiente sera indicar cuanta memoria va ha utilizar la maquina virtual, ha que tener en cuenta que esta se le quitara al la maquina anfitrión, por lo que hay que elegirla con cuidado. El VirtualBox indica una cantidad por defecto dependiendo del sistema elegido. Aunque nosotros podremos cambiarla a la cantidad que queramos. El VirtualBox también nos marca unas zona, de color verde y rojo, para estar tranquilos de no  perjudicar al sistema anfitrión.

Captura de pantalla de 2015-01-29 13:40:28En la siguiente venta seleccionaremos si nuestro sistema va ha tener o no disco duro, y si de tenerlo le asignaremos uno nuevo, o si por lo contrario este ya existe. Por internet hay muchos sistemas ya virtualizados, que lo único que tenemos que hacer es descargarlo, indicarle al VirtualBox que ese es el que queremos utilizar y listo. En este caso seleccionaremos la opción de «Usar un archivo de disco duro virtual existente«, seleccionamos el fichero descargado y ya lo tendríamos funcionando.

Captura de pantalla de 2015-01-29 13:41:15Si hemos elegido la opción de crear uno nuevo, la siguiente ventana nos pedirá que elijamos el tipo. Para empezar los mejor es dejar la opción por defecto, tipo de disco «VDI (VirtualBox Disk Image)«.

Captura de pantalla de 2015-01-29 13:42:13Los disco virtuales pueden ser de dos tipos, de «Tamaño fijo«, se creara un fichero con el mismo tamaño que tamaño tendrá nuestro disco virtual. O «Reservado dinámicamente«, en este caso el fichero que almacena el disco se ira ajusta a las necesidades de uso del disco virtual de la maquina creada. Esta opción no quiere decir que podremos usar todo el tamaño del disco real, el tamaño del disco virtual se ira ajusta hasta llegar al tamaño que fijaremos en la siguiente ventana.

Captura de pantalla de 2015-01-29 13:42:39En esta ventana estableceremos el tamaño que el disco duro va ha tener de nuestra maquina virtual. En esta ventana también configuraremos donde queremos que se graben los ficheros que van ha contener nuestra maquina virtual.

Captura de pantalla de 2015-01-29 13:43:13Y con esto solo nos queda pulsar el botón de «Crear«, y el VirtualBox creara los ficheros de configuración, de disco virtual, etc. de nuestra maquina.

Captura de pantalla de 2015-01-29 18:05:11Una vez que ya tengamos creada nuestra maquina solo nos queda configurar la maquina, para una configuración básica, solo tendremos que indicarle donde esta el sistema desde donde vamos hacer la instalación. Para ello pulsaremos sobre el botón de «Configuración«. Dentro de esta ventana iremos a la opción de «Almacenamiento«, seleccionaremos la unidad de «CD», que nos indicara que esta «Vacía«. Luego en la parte derecha de la ventana , en la parte de «Atributos«, marcaremos la opción de «CD/DVD vivo» si la copia de nuestro sistema la tenemos en CD/DVD, o si por el contrario, nuestro sistema esta en un fichero ISO, pulsaremos el icono del cd para cargar la imagen.

Captura de pantalla de 2015-01-29 18:05:11La otra configuración básica que nos queda por hacer sera  elegir que tipo de red queremos para nuestra maquina virtual. Si solo queremos es tener un acceso básica a la red, usar internet, sin querer acceder a otras maquinas de la red, podemos dejar la opción por defecto «NAT«.

Captura de pantalla de 2015-01-29 18:24:02Pulsamos el botón de «Aceptar» para guardar la configuración y ya podemos pulsar el botón de «Iniciar». Esto encenderá nuestra maquina como si pulsaremos el  botón de encendido de nuestra maquina física. Lo único que nos queda es instalar el sistema de la misma manera que lo haríamos en una maquina normal.

Windows 7 - 1

Esto es la creación de una maquina virtual básica. También se le puede configurar para que una de las carpetas del sistema anfitrión funcione como una unidad de red compartida, que cuando insertemos cualquier dispositivo USB automáticamente  se active en la maquina invitada, También podemos indicarle cuantos procesadores va ha tener, cuantas pantallas, etc. También, y esto es una posibilidad que más provecho le encuentro, cuantas tarjetas de red va ha tener, esto no quiere decir que las tengamos que tener físicamente, podemos tener una física y hasta cuatro virtuales, y además,  como queremos que funcionen, si puede incluirse como un equipo normal a la red, si por el contrario solo puede ser accesible desde otras maquinas virtuales de su propio grupo, etc.

Pero eso creo que sera para otro post. Si tienes alguna pregunta, no dudes en dejar un comentario.