Elasticsearch 是一个分布式搜索和分析引擎
Elasticsearch 是一个分布式搜索和分析引擎,部署方式很灵活。对于新手,最快的方式是用 Docker 跑一个单节点实例;如果要上生产环境,则需要用 Linux 安装包做更细致的配置。
🐳 方式一:Docker 部署(推荐用于开发测试)
这是最方便、最快上手的方式,适合本地开发和功能验证。
运行单节点 Elasticsearch
一条命令就能启动一个关闭了安全认证的单节点实例:
1 | docker run -p 127.0.0.1:9200:9200 -d --name elasticsearch \ |
-p 127.0.0.1:9200:9200:将服务端口限制在本机访问,更安全。discovery.type=single-node:单节点模式。xpack.security.enabled=false:关闭安全认证,方便测试。生产环境绝不能这样设置。ES_JAVA_OPTS:限制 JVM 堆内存,根据机器配置调整。
启动后,访问 http://localhost:9200 看到返回的 JSON 信息就成功了。
进阶:用 Docker Compose 同时部署 Kibana
如果你还需要 Kibana 来做可视化分析,可以用 Compose 文件把两个服务一起管起来:
1 | # docker-compose.yml |
执行 docker compose up -d 即可同时启动 Elasticsearch(端口 9200)和 Kibana(端口 5601)。
🐧 方式二:Linux 原生部署(生产环境常用)
在 Linux 服务器上,一般用 tar 包或包管理器安装,并做系统级配置。
1. 部署前准备(关键)
Elasticsearch 在 Linux 下不能用 root 用户启动,且需要调整系统参数:
1 | # 修改 vm.max_map_count,否则可能启动失败 |
2. 下载并解压 tar 包
1 | # 切换用户 |
3. 修改核心配置
编辑 config/elasticsearch.yml,以下是关键项:
1 | cluster.name: my-application |
同时,在 config/jvm.options 中调整 JVM 堆内存(建议 -Xms 和 -Xmx 设置相同,且不超过物理内存的 50%):
text
1 | -Xms1g |
4. 启动服务
1 | # 前台启动(测试用) |
🔐 生产环境安全建议
上面的 Docker 和 tar 包示例都为了方便测试关闭了安全认证。生产环境务必开启,否则任何人都能读写你的数据。
Elasticsearch 8.x 默认开启了安全功能,首次启动时会自动生成 elastic 用户的密码、证书指纹和节点注册令牌,一定要保存好。之后通过 HTTPS 和认证信息访问,例如用 curl 测试:
1 | curl -u elastic:你的密码 -k https://localhost:9200 |
✅ 验证部署
无论哪种方式,启动后都可以通过 REST API 验证服务是否正常。
1 | # 检查集群健康 |
如果返回了集群状态或索引列表,就说明部署成功了。
你的目标是本地开发还是生产环境部署?如果是生产环境,我可以再展开讲讲安全配置、集群搭建和内存调优的细节。



