在生产环境中运行 Elastic Stack 的全面指南
1. 线程池和垃圾回收器
Elasticsearch 会执行多种操作,如索引、搜索、排序和聚合等,它借助 JVM 线程池来完成这些任务。不过,不建议对 Elasticsearch 中与线程池相关的设置进行调整,因为通常这样做不仅无法提升性能,反而可能带来负面影响。同样,也不建议调整 Elasticsearch 的垃圾回收器设置。
2. 管理和监控 Elasticsearch
当你自行托管 Elasticsearch 时,需要负责集群的所有监控和管理工作。具体而言,要监控 Elasticsearch 节点的进程状态、内存和磁盘空间。若节点因任何原因崩溃或不可用,需重新启动。
此外,为了备份数据,需要定期对 Elasticsearch 索引进行快照。大部分监控工作可通过 X - Pack 和 Kibana 完成,但管理流程需要手动设置。
3. 在 Docker 容器中运行
Docker 是一种流行的软件容器化和分发方式。其优势在于,经过 Docker 化的软件运行在轻量级容器中,与虚拟机相比,开销极小。由于开销低且有大量公开可用的 Docker 镜像,Docker 是在生产环境中以可预测方式运行软件的理想选择,无需大量配置。
官方提供了不同版本的 Elasticsearch Docker 镜像可供下载:
- Elasticsearch 基础 X - Pack 许可证版本
- Elasticsearch 完整 X - Pack 许可证及 30 天评估版本
- 无 X - Pack 的开源 Elasticsearch 版本