Elasticsearch单机与集群安装详细步骤
一、环境准备
1. 系统要求
- 操作系统:Linux(CentOS 7+/Ubuntu 18.04+)或Windows Server 2016+
- Java环境:Elasticsearch 7.x需要JDK 11+,8.x需要JDK 17+
- 硬件配置:建议4核CPU、8GB内存、SSD存储
2. 系统参数优化
# 修改文件描述符限制
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 131072" >> /etc/security/limits.conf
# 修改虚拟内存映射限制
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
# 关闭swap(可选)
swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab二、单机安装步骤
1. 下载与解压
# 下载Elasticsearch安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.4-linux-x86_64.tar.gz
# 解压到目标目录
tar -zxvf elasticsearch-8.11.4-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/elasticsearch-8.11.4/2. 创建专用用户
# 创建用户和组
groupadd elasticsearch
useradd elasticsearch -g elasticsearch -s /bin/bash
# 授权目录
chown -R elasticsearch:elasticsearch /usr/local/elasticsearch-8.11.4/3. 配置JVM参数
编辑 config/jvm.options:
-Xms2g
-Xmx2g注意:生产环境建议堆内存不超过物理内存的50%,且不超过32GB
4. 配置Elasticsearch
编辑 config/elasticsearch.yml:
# 集群名称
cluster.name: my-elasticsearch
# 节点名称
node.name: node-1
# 数据存储路径
path.data: /usr/local/elasticsearch-8.11.4/data
# 日志存储路径
path.logs: /usr/local/elasticsearch-8.11.4/logs
# 网络配置
network.host: 0.0.0.0
http.port: 9200
# 单节点模式配置
discovery.type: single-node
# 跨域访问配置
http.cors.enabled: true
http.cors.allow-origin: "*"
# 安全配置(测试环境可关闭)
xpack.security.enabled: false5. 启动服务
# 切换用户
su elasticsearch
# 前台启动(调试用)
./bin/elasticsearch
# 后台启动
./bin/elasticsearch -d6. 验证安装
# 检查服务状态
curl http://localhost:9200
# 查看集群健康状态
curl http://localhost:9200/_cluster/health?pretty正常返回JSON格式的集群信息表示安装成功
三、集群安装步骤
1. 规划集群节点
建议至少3个节点组成集群,节点角色规划如下:
- 主节点:负责集群管理,建议3个专用主节点
- 数据节点:存储数据,根据数据量配置
- 协调节点:处理客户端请求
2. 各节点配置
节点1(主节点+数据节点):
cluster.name: my-cluster
node.name: node-1
node.master: true
node.data: true
network.host: 192.168.1.10
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.1.10:9300", "192.168.1.11:9300", "192.168.1.12:9300"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]节点2(数据节点):
cluster.name: my-cluster
node.name: node-2
node.master: false
node.data: true
network.host: 192.168.1.11
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["192.168.1.10:9300", "192.168.1.11:9300", "192.168.1.12:9300"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]节点3(协调节点):
cluster.name: my-cluster
node.name: node-3
node.master: false
node.data: false
network.host: 192.168.1.12
http.port: 9202
transport.port: 9302
discovery.seed_hosts: ["192.168.1.10:9300", "192.168.1.11:9300", "192.168.1.12:9300"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]3. 启动集群
# 分别在每个节点启动
./bin/elasticsearch -d4. 验证集群状态
# 查看集群健康
curl http://192.168.1.10:9200/_cluster/health?pretty
# 查看节点列表
curl http://192.168.1.10:9200/_cat/nodes?v集群状态应为green,节点数量显示为3
四、安全配置(可选)
1. 生成证书
# 生成CA证书
./bin/elasticsearch-certutil ca
# 生成节点证书
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p122. 配置安全参数
# 启用安全功能
xpack.security.enabled: true
# 启用SSL加密
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p123. 设置密码
# 设置内置用户密码
./bin/elasticsearch-setup-passwords interactive五、常见问题处理
1. 内存不足错误
# 修改JVM配置
vim config/jvm.options
# 调整为:-Xms512m -Xmx512m2. 端口冲突
# 检查端口占用
netstat -tlnp | grep 9200
# 修改配置文件中的端口号
http.port: 92013. 集群节点无法加入
- 检查防火墙是否开放9300端口
- 确认
discovery.seed_hosts配置正确 - 验证节点间网络连通性
六、监控与维护
1. 集群健康监控
# 查看集群状态
curl http://localhost:9200/_cluster/health?pretty
# 查看节点信息
curl http://localhost:9200/_cat/nodes?v
# 查看索引状态
curl http://localhost:9200/_cat/indices?v2. 性能监控指标
- 集群状态:green/yellow/red
- 节点负载:CPU、内存、磁盘使用率
- 分片状态:active、relocating、unassigned
3. 定期维护
- 定期清理过期索引
- 监控磁盘空间使用情况
- 定期备份重要数据
通过以上步骤,您可以完成Elasticsearch的单机和集群部署,并根据实际需求进行安全配置和性能优化。
作者:严锋 创建时间:2025-12-22 21:01
最后编辑:严锋 更新时间:2025-12-25 10:39
最后编辑:严锋 更新时间:2025-12-25 10:39