Elasticsearch en Docker: TLS y acceso local coherentes

Índice de contenido
  1. Revisa requisitos del host
  2. Crea un laboratorio de un nodo
  3. Usa el certificado del laboratorio
  4. Salud y operaciones
  5. Persistencia y recuperación
  6. Cambios de versión
  7. Preguntas frecuentes
    1. ¿Necesito publicar 9300 para un laboratorio de un nodo?
    2. ¿Puedo usar HTTP en el healthcheck si el servidor exige HTTPS?
    3. ¿Un volumen sustituye los snapshots de respaldo?
  8. En pocas palabras
  9. Conclusión
  10. Fuentes y documentación

Puedes utilizar Elasticsearch en Docker para aprender búsquedas y APIs. El laboratorio debe mantener autenticación y TLS coherentes, en lugar de mezclar una URL HTTPS con healthchecks HTTP o desactivar certificados para que desaparezca un error.

La documentación consultada muestra la versión 9.5.5. Es una referencia del corte de revisión; comprueba soporte y compatibilidad antes de seleccionarla para otro entorno.

Revisa requisitos del host

Elasticsearch utiliza memoria y límites del sistema que dependen de la versión. Consulta el valor requerido de vm.max_map_count y aplícalo mediante el procedimiento de tu plataforma.

sysctl vm.max_map_count
docker version

No copies el valor histórico 262144 como requisito universal de versiones nuevas. Tampoco modifiques el kernel de un host compartido sin revisar qué otras cargas utiliza.

Crea un laboratorio de un nodo

docker volume create elastic_lab_data
docker run -d --name elastic-lab \
  -p 127.0.0.1:9200:9200 \
  -m 1GB \
  -e discovery.type=single-node \
  -v elastic_lab_data:/usr/share/elasticsearch/data \
  docker.elastic.co/elasticsearch/elasticsearch:9.5.5

La memoria es un ejemplo de práctica y debe revisarse contra requisitos y carga. Un nodo único no aporta alta disponibilidad.

Consulta el procedimiento de inicialización de seguridad y recuperación de contraseña de esa versión. Los logs y herramientas iniciales pueden mostrar secretos; no los publiques para demostrar que arrancó.

Usa el certificado del laboratorio

Según la configuración automática documentada, puedes copiar la CA HTTP:

docker cp elastic-lab:/usr/share/elasticsearch/config/certs/http_ca.crt \
  ./http_ca.crt
curl --cacert ./http_ca.crt -u elastic https://localhost:9200

El cliente solicita la contraseña sin dejarla dentro del comando. Verifica que el nombre utilizado esté cubierto por el certificado.

No conviertas -k en el ajuste predeterminado: elimina una comprobación de identidad. Si necesitas otro nombre, configura un certificado apropiado.

Salud y operaciones

curl --cacert ./http_ca.crt -u elastic \
  'https://localhost:9200/_cluster/health?pretty'

Interpreta el resultado según la topología. Un nodo puede tener réplicas no asignadas por su diseño; una condición de salud debe entenderse y no maquillarse cambiando todo hasta que aparezca un color.

Para aplicaciones, crea credenciales y privilegios limitados. El usuario elastic del laboratorio no debe compartirse como cuenta universal.

Persistencia y recuperación

El volumen conserva datos del nodo, pero los certificados y otras configuraciones también importan al recrear el contenedor. Documenta qué se genera y qué debe mantenerse.

Para respaldos utiliza mecanismos de snapshot soportados y comprueba restauración. Copiar archivos del directorio de datos mientras corre el servicio no es un respaldo general válido.

Cambios de versión

Revisa compatibilidad de índices, clientes y plugins antes de actualizar. No supongas que puedes volver a una versión anterior reutilizando el mismo directorio después de que otra lo haya modificado.

Preguntas frecuentes

¿Necesito publicar 9300 para un laboratorio de un nodo?

No por el ejemplo descrito. Expón únicamente los puertos que requiera tu diseño.

¿Puedo usar HTTP en el healthcheck si el servidor exige HTTPS?

No sin una configuración coherente que lo permita. Debe respetar protocolo, autenticación y certificados del endpoint.

¿Un volumen sustituye los snapshots de respaldo?

No. Persistencia y recuperación son necesidades distintas; usa un procedimiento soportado y comprobado.

En pocas palabras

Elasticsearch necesita recursos y configuración de host compatibles con su versión. El cliente y cualquier healthcheck deben usar el mismo protocolo y confianza de certificados que el servidor.

Conclusión

Comprueba salud y una consulta con certificado validado y guarda un procedimiento de recuperación. Antes de ampliar a un clúster, revisa recursos, roles y respaldo mediante mecanismos compatibles.

Para continuar, revisa Docker: qué es y cómo usarlo para ejecutar contenedores y Cómo instalar Docker en Ubuntu 24.04: guía práctica paso a paso.

Fuentes y documentación

Documentación de www.elastic.co.

Documentación de www.elastic.co.

Subir

Descubre más de Sergio Caballero

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Continuar leyendo