三台 CentOS 7 服务器上部署 Elasticsearch (ES) 集群

三台 CentOS 7 服务器上部署 Elasticsearch (ES) 集群

1. 环境准备

1.1 服务器规划

服务器IP 节点名称 角色(默认混合角色)
192.168.30.100 es-node1 Master + Data
192.168.30.101 es-node2 Master + Data
192.168.30.102 es-node3 Master + Data

1.2 系统配置

所有节点服务器执行以下命令:

防火墙配置规则放行端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
systemctl restart firewalld
禁用SELinux
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
修改系统参数
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
修改文件描述符限制
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf

关闭Swap(生产环境建议禁用)

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

2. 安装 Elasticsearch

2.1 安装 Java

所有节点安装 OpenJDK 11

sudo yum install -y java-11-openjdk

2.2 安装 Elasticsearch

所有节点执行以下操作:

导入 Elasticsearch GPG 密钥
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
创建 Elasticsearch 仓库文件
cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
安装 Elasticsearch 7.x
sudo yum install -y elasticsearch

3. 配置 Elasticsearch 集群

3.1 修改配置文件

编辑 /etc/elasticsearch/elasticsearch.yml,每台服务器需修改以下内容:
(注意:IP和节点名称需按实际修改)

节点1配置(192.168.30.100)

cluster.name: my-es-cluster
node.name: es-node1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["192.168.30.100", "192.168.30.101", "192.168.30.102"]
cluster.initial_master_nodes: ["es-node1", "es-node2", "es-node3"]

节点2配置(192.168.30.101)

cluster.name: my-es-cluster
node.name: es-node2
network.host: 0.0.0.0
discovery.seed_hosts: ["192.168.30.100", "192.168.30.101", "192.168.30.102"]
cluster.initial_master_nodes: ["es-node1", "es-node2", "es-node3"]

节点3配置(192.168.30.102)

cluster.name: my-es-cluster
node.name: es-node3
network.host: 0.0.0.0
discovery.seed_hosts: ["192.168.30.100", "192.168.30.101", "192.168.30.102"]
cluster.initial_master_nodes: ["es-node1", "es-node2", "es-node3"]

3.2 启动服务

所有节点执行:

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

4. 验证集群状态

任意节点执行以下命令检查集群健康状态:

curl -X GET "http://192.168.30.101:9200/_cluster/health?pretty"

预期输出:

{
  "cluster_name" : "my-es-cluster",
  "status" : "green",
  "number_of_nodes" : 3,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  ...
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值