Skip to main content
[ PIER ]

Elasticsearch con Kibana

Motor de búsqueda + dashboard de visualización — pre-cableado en un stack.

Service #search#analytics#logging#elk#kibana

Elasticsearch (el motor distribuido de búsqueda y analítica) más Kibana (su UI de visualización, dashboard y admin) desplegado como un stack Pier con el cableado env ya correcto. La manera más rápida de obtener un entorno ELK-style de logs/búsqueda/analítica funcionando sin plumber manualmente dos servicios juntos.

Desplegar con Pier

  1. 1 Abre el panel de Pier y haz clic en Add service.
  2. 2 Elige Elasticsearch with Kibana en la lista de plantillas.
  3. 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
  4. 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.

¿Qué es Elasticsearch con Kibana?

Una plantilla bundle que envía Elasticsearch (el motor distribuido búsqueda / analítica / log-storage) y Kibana (la UI de visualización, dashboard y admin de Elasticsearch) como un stack Compose con el cableado ya hecho.

Elasticsearch indexa documentos en JSON, soporta full-text search, agregaciones, búsqueda vectorial y queries time-series. Kibana renderiza los datos — Discover para exploración libre de logs, Lens para visualizaciones drag-and-drop, Dashboards para reportes fijos, más apps para Security (SIEM), Observability, ML y Maps.

Juntos son la “E” + “K” del stack ELK y la superficie de observabilidad default para decenas de miles de organizaciones.

Cómo lo despliega Pier

Pier usa las imágenes oficiales docker.elastic.co/elasticsearch/elasticsearch y docker.elastic.co/kibana/kibana en un solo stack Compose. Puertos internos por defecto — ES en 9200/tcp, Kibana en 5601/tcp. Kibana se expone externamente vía Traefik; ES también puede exponerse si necesitas acceso API directo.

Pier auto-genera el password del usuario elastic y el service account token kibana_system; ambos están cableados en env vars para que Kibana arranque autenticada contra ES con cero pasos manuales. Dos volúmenes persistentes — /usr/share/elasticsearch/data para índices ES, /usr/share/kibana/data para estado Kibana.

Adjunta un dominio custom en Pier para acceso HTTPS a Kibana; ES es alcanzable internamente vía la red Docker desde tus otros servicios Pier.

Cuándo NO usar esta plantilla

Para una instancia Elasticsearch existente (managed Elastic Cloud, OpenSearch, ES self-hosted en otro lado), usa una plantilla Kibana standalone o skip Kibana y conecta Grafana con el datasource ES. Para storage de logs a escala con budget tight, ClickHouse guarda logs ~10× más barato y es más rápido para agregaciones — empareja con Grafana.

Para volúmenes diminutos de logs o dashboards simples de métricas, este stack es overkill — PostgreSQL con tsvector o un deploy pequeño de Grafana

  • Prometheus es más ligero. ES + Kibana alcanza el sweet spot para “quiero un stack que haga search + logs + dashboards + alerting + SIEM”.

Características clave

ES + Kibana pre-cableados

Kibana auto-descubre Elasticsearch vía la red Docker interna — sin config manual de ELASTICSEARCH_URL, sin token copy-paste.

Seguridad ES 8+ activa

HTTPS + basic auth habilitados por defecto. Password fuerte del usuario elastic auto-generado por Pier. Kibana obtiene un service-account token cableado.

Dashboards Kibana

Capa de visualización para ES — Lens (charts drag-and-drop), Discover (búsqueda de logs), Maps, Canvas, Dashboards, Alerting, ML, Observability, Security apps.

Queries ad-hoc ES|QL

Lenguaje de query estilo SQL con sintaxis pipe para exploración ad-hoc rápida. Menor barrera que ES Query DSL para ingenieros y analistas.

Dos volúmenes persistentes

Datos ES en un volumen, config Kibana en otro. Reinicia, upgrade y backup cada uno independientemente.

Despliegue single-node

Esta plantilla corre ES single-node adecuado para dev/test/small prod. Para clusters de producción con 3+ master nodes, orquestas eso manualmente.

Casos de uso

Agregación de logs (stack ELK)

La clásica "E" + "K" de ELK. Agrega Logstash, Beats, Fluent Bit o Vector para shippear logs — los dashboards Kibana los visualizan.

Búsqueda de aplicación

Motor de búsqueda backing para un sitio e-commerce, portal de docs o búsqueda in-app. Kibana para ops/admin; tu app habla ES directo.

SIEM / analítica de seguridad

La app Elastic Security dentro de Kibana — ingestión de logs, reglas de detección, detección de anomalías. SIEM sin pagar precios Splunk.

Analítica time-series

Datos de métricas + APM en Elasticsearch, dashboards en Kibana. Más ligero que Prometheus + Grafana para algunas formas de datos.

Quick RAG vector store con UI

ES 8+ tiene indexing dense_vector. Usa la consola Dev Tools de Kibana + Discover para explorar vectores visualmente durante prototipado.

Ejemplos de código

Primer login en Kibana text
1. Abre https://kibana.example.com (dominio Pier)
2. Username - elastic
3. Password - (de página servicio Pier — auto-generado)
4. Skip tour Welcome → Stack Management → API Keys → crear uno para tu app
Indexar doc de muestra + visualizar bash
# Desde Dev Tools console en Kibana, pega:
POST sample-orders/_doc
{"customer": "alice", "amount": 42.50, "ts": "2026-05-29T10:30:00Z"}

# Luego - Discover → crear data view "sample-orders*" → ver tu doc
Query ad-hoc ES|QL sql
FROM logs-*
| WHERE @timestamp > NOW() - 24 HOURS
| STATS count = COUNT(*) BY service.name
| SORT count DESC
| LIMIT 20
Enviar logs desde Fluent Bit text
[OUTPUT]
  Name             es
  Match            *
  Host             elasticsearch.example.com
  Port             9200
  HTTP_User        elastic
  HTTP_Passwd      <password>
  tls              On
  Index            logs
  Type             _doc

Comparativa

vs Solo Elasticsearch (este catálogo) ES plano está bien si ya tienes Kibana hosted en otro lado o usas una UI diferente (Grafana con datasource ES). Este bundle es la elección de conveniencia para "dame ambos, pre-cableados".
vs OpenSearch + OpenSearch Dashboards El fork AWS-led de ES + Kibana (split en el cambio de licencia de ES 7.10). API-compatible. Elige OpenSearch para Apache 2.0 estricto; ES + Kibana para últimas features y pulido Elastic.
vs Grafana con datasource Elasticsearch Grafana también puede visualizar datos ES. Kibana está construido a propósito para ES — Lens, Discover, features admin ES profundas.
vs ClickHouse + Grafana ClickHouse es mucho más barato para storage de logs a escala y más rápido para agregaciones. ES + Kibana gana en búsqueda full-text y exploración ad-hoc.

Preguntas frecuentes

¿Qué significa "pre-cableado" exactamente?
Pier configura elasticsearch.hosts de Kibana al URL interno del servicio ES, genera el service-account token para que Kibana autentique, y comparte el password del usuario elastic vía env vars. No copias manualmente ningún URL/token.
¿Requisitos de memoria?
Elasticsearch es JVM y hambriento de memoria. Mínimo 2 GB para contenedor ES; 4 GB+ para producción. Kibana agrega ~500 MB. Mínimo realista total — VPS 4 GB.
¿Cómo conecto mi app?
Usa el password del usuario elastic (en página servicio Pier) o crea una API key dedicada vía Stack Management → API Keys de Kibana.
¿Single-node OK para producción?
Para volúmenes de logs pequeños-a-medios (decenas de GB/día) — sí. Para cargas de producción mayores, quieres 3+ nodos ES — fuera del scope de esta plantilla de stack único.
¿Puedo desactivar TLS para uso solo-interno?
Sí — configura xpack.security.enabled=false en env Pier. Solo haz esto en redes cerradas.
¿Cómo actualizo?
Actualiza versiones ES y Kibana juntas en lockstep (Kibana rechaza iniciar contra ES de major diferente). Pier ofrece selectores de versión matcheados.
¿Backups?
Usa Snapshot Repositories de ES — configura un repo S3-compatible y corre snapshot policies en schedule. Backup es una sola API call.

Servicios relacionados

Desplegar en tu VPS

Elasticsearch (el motor distribuido de búsqueda y analítica) más Kibana (su UI de visualización, dashboard y admin) desplegado como un stack Pier con el cableado env ya correcto. La manera más rápida de obtener un entorno ELK-style de logs/búsqueda/analítica funcionando sin plumber manualmente dos servicios juntos.

Desplegar este servicio →