En esta ocasión vamos a ver cómo instalar Elasticsearch en CentOS 7 paso a paso, de modo que puedas usar este sistema de búsqueda de Big Data sobre tu servidor o VPS CentOS.
Contenido
Antes de instalar Elasticsearch en CentOS 7
Para poder seguir los pasos de esta guía de instalación de Elasticsearch en CentOS 7 partimos de estos requisitos:
- Una máquina CentOS 7 actualizada.
- La máquina y entorno de ejecución de Java.
- Un usuario con permisos de sudo.
- Acceso a Internet.
Si aún no dispones del entorno necesario te puede interesar nuestra guía de instalación de Java en CentOS 7.
Cómo instalar Elasticsearch en CentOS 7
Vamos a instalar Elasticsearch en CentOS 7 desde los repositorios oficiales, por lo que empezamos creando un archivo para el nuevo repositorio:
~$ sudo nano /etc/yum.repos.d/elasticsearch.repo
El contenido será el siguiente:
[elasticsearch-7.x] name=Repositorio Elasticsearch 7.x para CentOS 7 baseurl=http://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=http://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
Guardamos el archivo y actualizamos las listas de paquetes para que se incluya la información de este repositorio:
~$ sudo yum update
Ya podemos instalar Elasticsearch en CentOS 7 con el comando yum, siendo el paquete elasticsearch el que necesitamos:
~$ sudo yum install -y elasticsearch
Tras la descarga e instalación del paquete, se crea un nuevo servicio en CentOS 7, el servicio elasticsearch, que no queda en ejecución ni habilitado para su inicio automático.
Iniciamos el servicio por primera vez de forma manual con systemctl:
~$ sudo systemctl start elasticsearch
El proceso de inicio toma unos instantes, así que al quedar liberada la consola podemos comprobar el estado del servicio con el comando systemctl status elasticsearch
:
Si queremos que el servicio esté disponible en todo momento, podemos habilitarlo para que inicie automáticamente junto con CentOS 7:
~$ sudo systemctl enable elasticsearch
Cómo probar Elasticsearch
Podemos probar Elasticsearch desde la consola de CentOS 7 estableciendo una conexión local con el comando curl localhost:9200
:
~$ curl localhost:9200 { "name" : "centos7.local.lan", "cluster_name" : "elasticsearch", "cluster_uuid" : "u9N99VBTQ8OCGza6RFppeQ", "version" : { "number" : "7.11.0", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "8ced7813d6f16d2ef30792e2fcde3e755795ee04", "build_date" : "2021-02-08T22:44:01.320463Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Obtendremos bastante información sobre la versión instalada de Elasticsearch.
Cómo configurar Elasticsearch en CentOS 7
Para configurar Elasticsearch en CentOS 7 trabajaremos sobre sus archivos de configuración, alojados en la ruta /etc/elasticsearch/.
Cantidad de memoria RAM reservada para Elasticsearch
Si tenemos problemas con la cantidad de memoria RAM reservada por defecto por Elasticsearch en CentOS 7, podemos editar el archivo jvm.options para realizar algunos ajustes:
~$ sudo nano /etc/elasticsearch/jvm.options
Buscamos las directivas Xms y Xmx:
... # Xms represents the initial size of total heap space # Xmx represents the maximum size of total heap space -Xms1g -Xmx1g ...
Y variamos su valor (de 1 GB por defecto), en este ejemplo reduciéndolo a 512 MB:
... -Xms512m -Xmx512m ...
Guardamos los cambios y reiniciamos Elasticsearch:
~$ sudo systemctl restart elasticsearch
Acceso desde red
Por defecto Elasticsearch sólo trabaja localmente, es decir, sólo se admitirán conexiones desde la propia máquina CentOS 7. Si queremos permitir conexiones en red debemos hacer ajustes en el archivo elasticsearch.yml:
~$ sudo nano /etc/elasticsearch/elasticsearch.yml
Buscamos la directiva network.host:
... # Set the bind address to a specific IP (IPv4 or IPv6): # #network.host: 192.168.0.1 ...
Habilitamos la directiva eliminando el carácter # al inicio de línea y le damos el valor adecuado:
... network.host: 0.0.0.0 ...
También buscaremos la directiva discovery.seed_hosts:
... # Pass an initial list of hosts to perform discovery when this node is started: # The default list of hosts is ["127.0.0.1", "[::1]"] # #discovery.seed_hosts: ["host1", "host2"] ...
La habilitamos con el valor localhost (o con el de otros servidores Elasticsearch si existen):
... discovery.seed_hosts: ["localhost"] ...
Guardamos los cambios y reiniciamos el servicio:
~$ sudo systemctl restart elasticsearch
Trabajar con Elasticsearch en CentOS 7 desde red
Si hemos realizado la configuración de Elasticsearch necesaria para trabajar desde red, será necesario configurar el firewall, que suele estar activo por defecto:
~$ sudo firewall-cmd --permanent --add-service=elasticsearch
Introducida la excepción, la aplicamos recargando la configuración:
~$ sudo firewall-cmd --reload
Para acceder desde un navegador introducimos la dirección IP, dominio, nombre DNS, etc. añadiendo el puerto 9200.
Por ejemplo, la máquina CentOS 7 sobre la que hemos realizado este tutorial es accesible en el subdominio centos7.local.lan, por lo que podemos acceder usando http://centos7.local.lan:9200 como URL.
Obtendremos la misma información que en la consulta local desde consola.
Conclusión
Ahora que sabes cómo instalar Elasticsearch en CentOS 7 ya puedes probar y experimentar con este potente sistema de búsqueda y analítica, o integrarlo en tu red.
¡Apoya comoinstalar.me!
¿Ya tienes esta plataforma de búsqueda trabajando sobre tu propia máquina? Si es así y quieres agradecérnoslo colaborando mínimamente con el mantenimiento de este sitio y la creación de más artículos y guías, puedes hacerlo dejando una propina de tan sólo 1 $ desde PayPal:
O, si te sientes especialmente agradecido, invitándonos a un café:
¡Gracias!