Solo para visitantes de nuestro blog Obtenga 3 meses adicionales gratis + 10% de descuento en el plan trianual YSBLOG10
Agarra el trato

Cómo configurar ElasticSearch en un servidor Linux (Guía paso a paso, 2026)

Última actualización: marzo 7, 2026 9 minutos de lectura Prahlada Prajapati
Cómo configurar ElasticSearch en un servidor Linux

Para configurar Elasticsearch en un servidor Linux en 2026, instale Elasticsearch 8.x, ajuste el kernel y los descriptores de archivo, edite el archivo elasticsearch.yml para la red y la seguridad, habilite el servicio systemd, abra los puertos del firewall, verifique con curl sobre TLS y, por último, configure las contraseñas y ajuste el rendimiento (heap, fragmentos y almacenamiento). Los pasos a continuación funcionan en Ubuntu/Debian y RHEL/Rocky/AlmaLinux.

En esta guía paso a paso, aprenderá a configurar Elasticsearch en un servidor Linux desde cero, incluyendo valores predeterminados seguros, conceptos básicos de clústeres y optimización del rendimiento. Ya sea que indexe registros, impulse la búsqueda o cree análisis, este tutorial le ofrece una ruta práctica y lista para producción, alineada con las mejores prácticas de 2026.

Lo que aprenderás

  • Instalar Elasticsearch 8.x en Ubuntu/Debian y RHEL/Rocky/AlmaLinux
  • Aplicar ajustes esenciales del kernel y límites de Linux
  • Configurar elasticsearch.yml para un solo nodo o clúster
  • Proteja Elasticsearch con TLS y contraseñas
  • Abra el firewall de forma segura y verifique con curl
  • Optimice el montón, los fragmentos y el almacenamiento de JVM para mejorar el rendimiento
  • Solucionar problemas comunes de arranque y de inicio

Requisitos previos y requisitos del sistema

  • Linux: Ubuntu 22.04+/24.04+, Debian 12+, RHEL/Rocky/AlmaLinux 8/9, Amazon Linux 2+
  • CPU/RAM: 2+ vCPU, 4–8 GB RAM mínimo (cuanto más, mejor)
  • Disco: SSD/NVMe muy recomendado
  • Red: Abrir los puertos 9200 (HTTP) y 9300 (transporte para clusters)
  • Privilegios: acceso sudo/root
  • Java: Elasticsearch 8.x se entrega con un JDK incluido (no se necesita Java por separado)

Instalar Elasticsearch en Ubuntu/Debian (la forma más rápida)

Utilice el repositorio oficial de Elastic APT para la última versión 8.x. Esto garantiza actualizaciones estables y seguridad integrada.

sudo apt update
sudo apt install -y apt-transport-https curl gnupg

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | 
  sudo tee /etc/apt/sources.list.d/elastic-8.x.list

sudo apt update
sudo apt install -y elasticsearch

Instalar Elasticsearch en RHEL/Rocky/AlmaLinux/Amazon Linux

Utilice el repositorio oficial de YUM/DNF. Los pasos a continuación funcionan con los principales derivados de RHEL.

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat <<'EOF' | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

sudo dnf install -y elasticsearch || sudo yum install -y elasticsearch

Ajuste esencial del sistema (necesario para la producción)

Aplique estas configuraciones de kernel y límites para evitar fallas en la verificación de arranque y garantizar un rendimiento estable.

1) Aumentar vm.max_map_count

echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/99-elasticsearch.conf
sudo sysctl --system

2) Descriptores de archivos y bloqueo de memoria

echo -e "elasticsearch soft nofile 65535nelasticsearch hard nofile 65535nelasticsearch soft memlock unlimitednelasticsearch hard memlock unlimited" | 
  sudo tee /etc/security/limits.d/50-elasticsearch.conf

# Lock memory in Elasticsearch JVM (avoids swapping)
sudo sed -i 's/^#?bootstrap.memory_lock:.*/bootstrap.memory_lock: true/' /etc/elasticsearch/elasticsearch.yml

Asegúrese de que su unidad systemd permita el bloqueo de memoria (las unidades empaquetadas suelen hacerlo). El intercambio debe estar deshabilitado en los nodos de producción.

sudo swapoff -a
# Optional: make persistent by commenting swap in /etc/fstab

Configurar elasticsearch.yml (nodo único seguro)

Elasticsearch 8 habilita la seguridad por defecto y genera un certificado CA HTTP local. Para un nodo único y seguro, comience con la configuración mínima que se indica a continuación.

sudo cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak

sudo bash -c 'cat > /etc/elasticsearch/elasticsearch.yml' <<'EOF'
cluster.name: youstable-es
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

# Bind to specific interface(s); 0.0.0.0 enables remote access
network.host: 0.0.0.0
http.port: 9200

# Single-node discovery mode
discovery.type: single-node

# Security is enabled by default in 8.x
xpack.security.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
EOF

Nota: La instalación de paquetes suele ubicar la CA HTTP en /etc/elasticsearch/certs/http_ca.crt y el almacén de claves en /etc/elasticsearch/certs/http.p12. Mantenga los permisos estrictos (pertenecientes al usuario de elasticsearch).

Iniciar Elasticsearch y verificar

sudo systemctl daemon-reload
sudo systemctl enable --now elasticsearch
sudo systemctl status elasticsearch --no-pager

Establezca o restablezca la contraseña de superusuario elástica integrada y guárdela de forma segura.

# Interactive reset (8.x)
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

Verificar a través de HTTPS utilizando el certificado CA generado.

curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200
# Expected: JSON with cluster_name, version.number (8.x), tagline

Abra el firewall de forma segura

Exponga solo lo necesario. El puerto 9200 sirve HTTPS; para clústeres multinodo, el transporte usa el 9300.

UFW (Ubuntu/Debian)

sudo ufw allow 9200/tcp    # HTTP(S)
sudo ufw allow 9300/tcp    # Transport (cluster only)
sudo ufw status

firewalld (RHEL/Rocky/AlmaLinux)

sudo firewall-cmd --permanent --add-port=9200/tcp
sudo firewall-cmd --permanent --add-port=9300/tcp
sudo firewall-cmd --reload

Opcional: Instalar y conectar Kibana

Kibana ofrece una interfaz de usuario basada en managemento, paneles de control y herramientas de desarrollo.

# Ubuntu/Debian
sudo apt install -y kibana

# RHEL family
sudo dnf install -y kibana || sudo yum install -y kibana

# Configure Kibana
sudo sed -i 's/^#?server.host:.*/server.host: "0.0.0.0"/' /etc/kibana/kibana.yml
sudo sed -i 's|^#?elasticsearch.hosts:.*|elasticsearch.hosts: ["https://localhost:9200"]|' /etc/kibana/kibana.yml

sudo systemctl enable --now kibana

Crear un clúster de varios nodos (descripción general)

Para más de 3 nodos, deberá configurar los hosts de origen, los nodos maestros iniciales y los certificados TLS de la capa de transporte. El esquema a continuación muestra una base segura.

1) Generar certificados de transporte

# On a secure workstation or one node:
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem --in instances.yml --out es-certs.zip

# instances.yml example:
# instances:
#   - name: node-1
#     ip: ["10.0.0.11"]
#   - name: node-2
#     ip: ["10.0.0.12"]
#   - name: node-3
#     ip: ["10.0.0.13"]

Distribuya el par de certificado/clave correcto a cada nodo (restrinja los permisos) y luego haga referencia a ellos en elasticsearch.yml.

2) Configuración del clúster (edite elasticsearch.yml en cada nodo)

cluster.name: youstable-es
node.name: node-1
network.host: 0.0.0.0

discovery.seed_hosts: ["10.0.0.11","10.0.0.12","10.0.0.13"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

xpack.security.enabled: true
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  key: /etc/elasticsearch/certs/node-1.key
  certificate: /etc/elasticsearch/certs/node-1.crt
  certificate_authorities: ["/etc/elasticsearch/certs/ca.crt"]

xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12

Inicie cada nodo y verifique que el estado del clúster esté en verde.

curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://10.0.0.11:9200/_cluster/health?pretty

Mejores prácticas para optimizar el rendimiento

  • Tamaño del montón: Establezca Xms=Xmx en ~50% del sistema. RAM, máximo ~31g para conservar los archivos comprimidos.
  • Almacenamiento: Utilice unidades SSD/NVMe dedicadas. Evite volúmenes en red para datos principales, a menos que tengan baja latencia.
  • Fragmentos: Comience con 1 a 3 fragmentos principales por índice; evite la fragmentación excesiva. Configure las réplicas en al menos 1 en los clústeres.
  • Ciclo de vida del índice: utilice ILM para renovar y eliminar índices antiguos (registros, métricas).
  • Intervalo de actualización: aumente para una ingesta intensa (por ejemplo, 30 s) para reducir la sobrecarga.
  • MMap: Ya configuramos vm.max_map_count. Mantenga los descriptores de archivo altos.
  • Ingesta: utilice canalizaciones de ingesta o Logstash/Beats para analizar; mantenga las canalizaciones eficientes.
  • Monitoreo: Realice un seguimiento de JVM, GC, índices de aciertos de caché, latencia de E/S y tiempos de consulta a través de Kibana o monitoreo externo.

Establecer el montón de JVM en las instalaciones de paquetes

# Create an override file without editing the main jvm.options
echo "-Xms8g" | sudo tee /etc/elasticsearch/jvm.options.d/heap.options
echo "-Xmx8g" | sudo tee -a /etc/elasticsearch/jvm.options.d/heap.options

sudo systemctl restart elasticsearch

Comandos comunes y controles de salud

# Cluster health
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200/_cluster/health?pretty

# Node stats (verbose)
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200/_nodes/stats?pretty

# List indices
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200/_cat/indices?v

# Create a test index with sane defaults
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic -X PUT https://localhost:9200/test-index 
  -H "Content-Type: application/json" 
  -d '{"settings":{"number_of_shards":1,"number_of_replicas":0,"refresh_interval":"30s"}}'

Copias de seguridad y actualizaciones (lista de verificación de producción)

Instantáneas a S3 (ejemplo)

# Install plugin if not bundled
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install repository-s3
sudo systemctl restart elasticsearch

# Register repository
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic -X PUT https://localhost:9200/_snapshot/my_s3_repo 
  -H "Content-Type: application/json" 
  -d '{"type":"s3","settings":{"bucket":"my-es-backups","region":"us-east-1"}}'

# Create snapshot
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic -X PUT https://localhost:9200/_snapshot/my_s3_repo/snap-`date +%F`?wait_for_completion=true

Actualizaciones (de la versión 8.x a la más reciente 8.x)

  • Lea las notas de la versión y ejecute el Asistente de actualización en Kibana.
  • Primero, tome una instantánea. Verifique que la restauración funcione en un entorno de prueba.
  • Para los clústeres, realice actualizaciones sucesivas: detenga un nodo, actualice el paquete, inicie, espere a que esté en verde y repita.
  • Vuelva a ejecutar cualquier refuerzo personalizado después de las actualizaciones del paquete.

Solución de problemas y registros

  • El servicio no se puede iniciar: verifique /var/log/elasticsearch/ y journalctl.
  • Comprobaciones de arranque: garantizar vm.max_map_count, memlock, sin intercambio y con permisos correctos.
  • Errores de seguridad: Confirme las rutas de CA/almacén de claves y la propiedad de los archivos por parte del usuario de elasticsearch.
  • Clúster rojo/amarillo: inspeccione la asignación de fragmentos, las marcas de agua del disco y los registros de nodos.
journalctl -u elasticsearch -e --no-pager
sudo tail -n 200 /var/log/elasticsearch/elasticsearch.log

Cuándo elegir hosting administrado

Si prefiere centrarse en su aplicación en lugar de en el ajuste de JVM, los fragmentos y TLS, manageLos servidores d pueden ayudar. En YouStable, nuestro VPS optimizado y los servidores dedicados se entregan con almacenamiento SSD/NVMe, red robusta y asistencia opcional para la pila ELK, de modo que obtiene un entorno Elasticsearch seguro y ajustado sin conjeturas.

Preguntas frecuentes: Cómo configurar Elasticsearch en un servidor Linux

¿Es necesario Java para instalar Elasticsearch 8 en Linux?

No. Elasticsearch 8.x incluye un JDK compatible, por lo que no necesita instalar Java por separado. Utilice los paquetes oficiales para garantizar un tiempo de ejecución correcto y actualizaciones sin problemas.

¿Cómo puedo exponer Elasticsearch de forma segura en Internet?

Utilice HTTPS con la CA generada o sus propios certificados, aplique contraseñas y roles seguros, restrinja las IP con un firewall o proxy inverso y nunca ejecute sin seguridad. Considere un WAF y limite la exposición directa siempre que sea posible.

Establezca Xms y Xmx en aproximadamente el 50% del sistema. RAMLimitado a cerca de 31 GB para conservar los punteros de objetos comprimidos. Supervise la recolección de basura y la presión de memoria, y luego ajústelo según las cargas de trabajo reales.

¿Cuántos fragmentos debo utilizar por índice?

Empiece con poco. Para la mayoría de los casos de uso, basta con 1 a 3 fragmentos primarios. El exceso de fragmentos desperdicia memoria y manejadores de archivos. Escale los fragmentos según el tamaño de los datos y los patrones de consulta, y utilice ILM para... manage ciclos de vida del índice.

¿Por qué obtengo errores de verificación de arranque al iniciar?

En entornos de producción, Elasticsearch aplica comprobaciones como vm.max_map_count, descriptores de archivo, bloqueo de memoria y ausencia de intercambio. Aplique los pasos de ajuste de esta guía, corrija los permisos y reinicie el servicio.

Conclusión

Ha instalado y configurado Elasticsearch en Linux con seguridad Valores predeterminados, un ajuste adecuado del kernel y una configuración optimizada para producción. Continúe añadiendo Kibana, automatizando las instantáneas y refinando el montón, los fragmentos e ILM. Si necesita ayuda, YouStable, manageservidor d El equipo puede preconfigurar Elasticsearch para su carga de trabajo exacta y su plan de crecimiento.

Deja Tu Comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *

Ir al Inicio