Skip to content
返回部署

部署 Elasticsearch

搜索和分析引擎,全文搜索、聚合和 Kibana。

平台高级

为什么

Elasticsearch 提供分布式全文搜索、聚合和大规模日志分析。Kibana 可视化,Logstash 摄取管道。

平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。

何时使用

搜索、日志分析和指标用 Elasticsearch。主 DB 避免(用作次)。

如何做

1. Docker — elasticsearch:8 加 Kibana 2. 集群 — HA 最少 3 节点 3. 索引 — 配 mapping 建索引 4. 搜索 — query DSL 全文 + 过滤 5. 聚合 — bucket + metric 分析 6. Kibana — :5601 可视化 7. 安全 — 启用 TLS + auth(8.x 默认)

示例

# docker-compose.yml services: es: image: elasticsearch:8 environment: discovery.type: single-node xpack.security.enabled: false ports: ["9200:9200"] kibana: image: kibana:8 environment: ELASTICSEARCH_HOSTS: http://es:9200 ports: ["5601:5601"] # 索引和搜索 curl -X PUT localhost:9200/users -H 'Content-Type: application/json' -d ' { "mappings": { "properties": { "name": { "type": "text" } } } }' curl -X POST localhost:9200/users/_doc -d '{ "name": "Alice" }' curl localhost:9200/users/_search?q=name:alice

常见问题

  • ⚠堆过大 — ES_JAVA_OPTS 设 RAM 50%,留半给 Lucene
  • ⚠单节点无 HA — 仅开发,生产需 3 节点
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓堆设 RAM 50% — 半 JVM,半 Lucene 堆外
  • ✓用索引生命周期管理 — 自动滚动删除旧索引
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答