Skip to main content
[ PIER ]

Elasticsearch with Kibana

搜索引擎 + 可视化仪表板 —— 在一个栈中预连线。

Service #search#analytics#logging#elk#kibana

Elasticsearch(分布式搜索和分析引擎)加 Kibana(其可视化、仪表板和管理 UI)作为一个 Pier 栈部署,env 连线已正确。无需手动连接两个服务即可获得工作的 ELK 风格日志/搜索/分析环境的最快方式。

使用 Pier 部署

  1. 1 打开 Pier 控制台,点击 Add service。
  2. 2 从模板列表中选择 Elasticsearch with Kibana。
  3. 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
  4. 4 如需 HTTPS,请绑定域名。Traefik 会自动签发 Let's Encrypt 证书。

什么是 Elasticsearch with Kibana?

捆绑模板将 Elasticsearch(分布式搜索 / 分析 / 日志存储引擎)和 Kibana (Elasticsearch 的可视化、仪表板和管理 UI)作为一个带连线的 Compose 栈 发布。

Elasticsearch 用 JSON 索引文档,支持全文搜索、聚合、向量搜索和时间序列查询。 Kibana 渲染数据 —— Discover 用于自由文本日志探索、Lens 用于拖放可视化、 Dashboards 用于固定报告,加上 Security (SIEM)、Observability、ML 和 Maps 的应用。

它们一起是 ELK 栈的 “E” + “K”,是数万组织的默认可观测性表面。

Pier 如何部署它

Pier 使用官方 docker.elastic.co/elasticsearch/elasticsearchdocker.elastic.co/kibana/kibana 镜像在单个 Compose 栈中。默认内部端口: ES 9200/tcp,Kibana 5601/tcp。Kibana 通过 Traefik 外部公开;如果需要直接 API 访问,ES 也可以公开。

Pier 自动生成 elastic 用户密码和 kibana_system 服务账户 token;两者都连接到 env vars,以便 Kibana 启动时已对 ES 进行身份验证,无需手动步骤。两个持久卷 —— /usr/share/elasticsearch/data 用于 ES 索引,/usr/share/kibana/data 用于 Kibana 状态。

在 Pier 中附加自定义域名以进行 HTTPS Kibana 访问;ES 可通过 Docker 网络从你 的其他 Pier 服务内部访问。

何时不要使用本模板

对于现有 Elasticsearch 实例(托管 Elastic Cloud、OpenSearch、自托管 ES 在 其他地方),使用独立的 Kibana 模板或跳过 Kibana 并将 Grafana 与 ES 数据源 连接。对于紧预算的大规模日志存储,ClickHouse 存储日志便宜约 10 倍且聚合 更快 —— 与 Grafana 配对。

对于小日志量或简单指标仪表板,本栈是过度的 —— 带 tsvector 的 PostgreSQL 或 小型 Grafana + Prometheus 部署更轻。ES + Kibana 命中”我想要一个栈来做搜索 + 日志 + 仪表板 + 警报 + SIEM”的最佳点。

核心功能

预连线的 ES + Kibana

Kibana 通过内部 Docker 网络自动发现 Elasticsearch —— 无手动 ELASTICSEARCH_URL 配置,无 token 复制粘贴。

Elasticsearch 8+ 安全开启

默认启用 HTTPS + 基本身份验证。Pier 自动生成强 elastic 用户密码。Kibana 获得连线的服务账户 token。

Kibana 仪表板

ES 的可视化层 —— Lens(拖放图表)、Discover(日志搜索)、Maps、Canvas、Dashboards、Alerting、ML、Observability、Security 应用。

ES|QL 即席查询

用于快速即席探索的 SQL 风格的管道语法查询语言。对工程师和分析师比 ES Query DSL 更低门槛。

两个持久卷

ES 数据在一个卷中,Kibana 配置在另一个中。独立重启、升级和备份每个。

单节点部署

本模板运行适合开发/测试/小型生产的单节点 ES。对于带 3+ 主节点的生产集群,你手动编排。

应用场景

日志聚合(ELK 栈)

ELK 的经典 "E" + "K"。添加 Logstash、Beats、Fluent Bit 或 Vector 以发送日志 —— Kibana 仪表板可视化它们。

应用搜索

电子商务站点、文档门户或应用内搜索的后端搜索引擎。Kibana 用于 ops/管理;你的应用直接与 ES 通信。

SIEM / 安全分析

Kibana 内的 Elastic Security 应用 —— 日志摄取、检测规则、异常检测。SIEM 无需支付 Splunk 价格。

时间序列分析

Elasticsearch 中的指标 + APM 数据,Kibana 中的仪表板。对某些数据形状比 Prometheus + Grafana 更轻。

带 UI 的快速 RAG 向量存储

ES 8+ 有 dense_vector 索引。在原型期间使用 Kibana 的 Dev Console + Discover 可视化探索向量。

代码示例

首次 Kibana 登录 text
1. 打开 https://kibana.example.com (Pier 域)
2. 用户名:elastic
3. 密码:(来自 Pier 服务页面 —— 自动生成)
4. 跳过"Welcome"教程 → Stack Management → API Keys → 为你的应用创建一个
索引示例文档 + 可视化 bash
# 从 Kibana 的 Dev Tools 控制台,粘贴:
POST sample-orders/_doc
{"customer": "alice", "amount": 42.50, "ts": "2026-05-29T10:30:00Z"}

# 然后:Discover → 创建数据视图 "sample-orders*" → 看到你的文档
ES|QL 即席查询 sql
FROM logs-*
| WHERE @timestamp > NOW() - 24 HOURS
| STATS count = COUNT(*) BY service.name
| SORT count DESC
| LIMIT 20
从 Fluent Bit 发送日志 text
[OUTPUT]
  Name             es
  Match            *
  Host             elasticsearch.example.com
  Port             9200
  HTTP_User        elastic
  HTTP_Passwd      <密码>
  tls              On
  Index            logs
  Type             _doc

对比

vs 仅 Elasticsearch(本目录) 如果你已在其他地方托管 Kibana 或使用不同的 UI(带 ES 数据源的 Grafana),普通 ES 还行。本捆绑是"给我两个,预连线"的便利选择。
vs OpenSearch + OpenSearch Dashboards ES + Kibana 的 AWS 主导分叉(在 ES 7.10 的许可证更改时分裂)。API 兼容。选择 OpenSearch 用于严格的 Apache 2.0;ES + Kibana 用于最新功能和 Elastic 的精致。
vs 带 Elasticsearch 数据源的 Grafana Grafana 也可以可视化 ES 数据。Kibana 专为 ES 构建 —— Lens、Discover、深度 ES 管理功能。为主要 ES 工作流选择 Kibana;ES 是众多数据源之一时选择 Grafana。
vs ClickHouse + Grafana ClickHouse 在大规模下日志存储便宜得多,聚合更快。ES + Kibana 在全文搜索、深度嵌套 JSON、即席自由文本探索上获胜。

常见问题

"预连线" 到底是什么意思?
Pier 将 Kibana 的 elasticsearch.hosts 设置为内部 Elasticsearch 服务 URL,为 Kibana 身份验证生成服务账户 token,并通过 env vars 共享 elastic 用户密码。你不手动复制任何 URL/token。
内存要求?
Elasticsearch 是 JVM 且内存饥渴。ES 容器最少 2 GB;生产 4 GB+。Kibana 添加约 500 MB。总实际最小 —— 4 GB VPS。
如何连接我的应用?
使用 elastic 用户密码(在 Pier 服务页面)或通过 Kibana 的 Stack Management → API Keys 创建专用 API 密钥。
单节点对生产 OK 吗?
对于中小日志量(每天数十 GB)—— 是。对于较大的生产负载,你需要 3+ ES 节点 —— 此单栈模板范围之外。
我可以禁用 TLS 用于仅内部使用吗?
是 —— 在 Pier env 中设置 xpack.security.enabled=false。仅在封闭网络上这样做;ES 8+ 默认安全开启是有充分理由的。
如何更新?
ES 和 Kibana 版本一起升级(Kibana 拒绝针对不同主要 ES 启动)。Pier 提供匹配的版本选择器。
备份?
使用 ES Snapshot Repositories —— 配置 S3 兼容的仓库并按时间表运行快照策略。备份是单个 API 调用。

相关服务

在你的 VPS 上部署

Elasticsearch(分布式搜索和分析引擎)加 Kibana(其可视化、仪表板和管理 UI)作为一个 Pier 栈部署,env 连线已正确。无需手动连接两个服务即可获得工作的 ELK 风格日志/搜索/分析环境的最快方式。

部署此服务 →