TL;DR
- 场景: 单机部署 Elasticsearch 用于开发测试
- 结论: 单机模式满足小公司业务场景,配置简单易上手
- 产出: 完整部署流程、JVM 配置、系统参数
ES 单机部署概述
Single-Node Mode
Elasticsearch 是一个分布式全文搜索引擎,支持:
- 单节点模式(Single-Node Mode)
- 集群模式(Cluster Mode)
小公司业务场景使用 Single-Node Mode 即可。
官方网站
https://www.elastic.co/cn/downloads/elasticsearch
下载与解压
下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz
解压
cd /opt/software/
tar -zxvf elasticsearch-7.3.0-linux-x86_64.tar.gz
mv elasticsearch-7.3.0 ../servers/
配置修改
服务配置
修改 elasticsearch.yml:
vim /opt/servers/elasticsearch-7.3.0/config/elasticsearch.yml
- 单机安装请取消注释:
node.name: node-1 - 修改网络和端口
# ------------------------------------ Node ------------------------------------
node.name: node-1
JVM 配置
修改 jvm.options:
vim /opt/servers/elasticsearch-7.3.0/config/jvm.options
注意: 默认 1G 内存不够用,建议设置 2G:
-Xms2g
-Xmx2g
用户与权限
创建用户
ES 默认不允许 root 用户启动:
useradd es_server
passwd es_server
授权
chown -R es_server /opt/servers/elasticsearch-7.3.0
系统参数配置
修改 sysctl.conf
ES 需要创建大量索引文件,需要调整内核参数:
vim /etc/sysctl.conf
末尾添加:
vm.max_map_count=655360
执行生效:
sysctl -p
修改 limits.conf
修改文件描述符限制:
vim /etc/security/limits.conf
末尾添加:
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
启动服务
切换用户
su es_server
启动
/opt/servers/elasticsearch-7.3.0/bin/elasticsearch
后台启动
/opt/servers/elasticsearch-7.3.0/bin/elasticsearch -d
访问服务
验证
http://h121.wzk.icu:9200
返回结果
{
"name": "node-1",
"cluster_name": "elasticsearch",
"cluster_uuid": "zv9WF53-RfKO1xNaIxt3uA",
"version": {
"number": "8.15.0",
"build_flavor": "default",
"build_type": "tar",
"build_hash": "1a77947f34deddb41af25e6f0ddb8e830159c179",
"build_date": "2024-08-05T10:05:34.233336849Z",
"build_snapshot": false,
"lucene_version": "9.11.1",
"minimum_wire_compatibility_version": "7.17.0",
"minimum_index_compatibility_version": "7.0.0"
},
"tagline": "You Know, for Search"
}
部署最佳实践
集群规划
- 设置主节点、数据节点、协调节点等不同角色
- 设置合理的分片和副本数,确保性能与容错
安全性
- 使用 X-Pack 进行用户认证和角色管理
- 配置 TLS/SSL 加密通信,保障数据传输安全
性能优化
- 合理设置
index.refresh_interval以减少开销 - 使用
index.max_result_window调整查询结果数量限制 - 启用 shard allocation awareness,确保分片在不同的物理节点上分布
错误速查
| 症状 | 根因 | 修复 |
|---|---|---|
| 内存不足 | JVM 堆设置过大/物理内存不足 | 调小 -Xms2g -Xmx2g |
| 文件描述符 too low | limits.conf 未生效 | 重启或重新登录 |
| max_map_count too low | 内核参数未设置 | sysctl -p 生效 |
| 拒绝 root 运行 | ES 不允许 root 启动 | 创建普通用户 |
| 端口被占用 | 9200/9300 端口占用 | 检查端口或修改配置 |