Requisitos previos
ElasticSearch 6.2.3 requiere Java 8 o superior. Puedes instalar Java siguiendo una guía adecuada para CentOS 6.5.
Descarga del paquete
# Visita la página oficial para descargar la versión
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.zip
Creación de usuario dedicdao
Por seguridad, no se recomienda ejecutar ElasticSearch como usuario root. Crea un usuario y grupo específicos:
groupadd esgroup
useradd esuser -g esgroup -p tu_contraseña
Descompresión e instalación
Coloca el archivo en el directorio deseado y extrae su contenido:
unzip elasticsearch-6.2.3.zip -d /usr/local/
cd /usr/local/elasticsearch-6.2.3
Permisos de archivos
chown -R esuser:esgroup /usr/local/elasticsearch-6.2.3
Configuración del sistema
Para evitar errores durante el arranque, ajusta los siguientes parámetros del sistema con el usuario root:
Límites de memoria (memlock)
echo "esuser soft memlock unlimited" >> /etc/security/limits.conf
echo "esuser hard memlock unlimited" >> /etc/security/limits.conf
Número de archivos abiertos (file descriptors)
echo "esuser soft nofile 65536" >> /etc/security/limits.conf
echo "esuser hard nofile 131072" >> /etc/security/limits.conf
Límite de procesos (nproc)
Edita el archivo /etc/security/limits.d/90-nproc.conf y cambia:
# Línea original
* soft nproc 1024
# Cambia a
* soft nproc 4096
Memoria virtual y mapeos
echo "vm.max_map_count=655360" >> /etc/sysctl.conf
sysctl -p
Deshabilitar filtros de llamadas al sistema (para CentOS 6)
CentOS 6 no es compatible completamente con SecComp. Edita el archivo config/elasticsearch.yml y añade:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
Configuración de red
En el mismo archivo config/elasticsearch.yml, define la dirección de escucha y puerto:
network.host: 0.0.0.0
http.port: 9200
Iniciar ElasticSearch
Cambia al usuario creado y ejecuta el serviico:
su - esuser
cd /usr/local/elasticsearch-6.2.3
bin/elasticsearch
Para ejecutarlo en segundo plano:
bin/elasticsearch -d
Verificar la instalación
Una vez iniciado, comprueba que el servicio responde mediante el navegador o con CURL:
curl http://localhost:9200
Deberías recibir un objeto JSON con información del nodo.