es 原生linux部署集群

背景

目的:

  1. 理解不同部署方式的架构差异

  2. 对比环境配置的复杂度

  3. 评估性能与资源管理

  4. 探索扩展性与高可用性

  5. 学习安全与隔离机制

  6. 实践监控与维护

  7. 掌握混合部署与云原生场景

实验的最终目标

技能提升:

全面掌握Elasticsearch在不同环境下的部署、配置、优化和故障排查能力。

决策支持:

为实际生产环境中的技术选型(原生 vs. 容器化)提供数据支持和实践经验。

需求:

es 原生linux部署集群

原生linux命令部署

1.准备两台服务器,修改静态IP,关闭防火墙和SELinux,其中静态IP分别设为10.1.1.32和10.1.1.33,通过命令systemctl stop firewalld && systemctl disable firewalld关闭防火墙,修改selinux配置文件后重启。

2.安装ES准备工作:安装Java并验证版本,下载ES安装包并解压,创建es用户和组,移动文件目录并赋予权限,修改sysctl.conf和limits.conf文件,其中在sysctl.conf添加vm.max_map_count=262144 ,在limits.conf配置用户文件打开数限制。

3.安装ES:配置elasticsearch.yml文件,设置集群名称、节点名称、绑定IP等参数,两台服务器的集群名称需相同;切换到es用户启动ES服务,另一台服务器重复相同步骤。

4.测试:在任意一台服务器上使用curl命令测试ES集群状态,注意修改为自己的IP地址。

一.准备环境

1.1环境准备(可先配置好一台,随后克隆)

|-------------------|------------------------------|
| IP | |
| 10.1.1.32 | cpu 2核 内存:4G 硬盘 100G |
| 10.1.1.33 | cpu 2核 内存:4G 硬盘 100G |

1.2 修改静态IP

bash 复制代码
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=9ca3309e-8a00-4ad0-a902-792e121282d9
DEVICE=ens33
ONBOOT=yes
IPADDR=10.1.1.32
PREFIX=24
GATEWAY=10.1.1.2
DNS1=114.114.114.114
DNS2=8.8.8.8

1.3关闭Slinux和防火墙

systemctl stop firewalld && systemctl disable firewalld

vi /etc/sysconfig/selinux

SELinux=enforcing改为SELinux=disabled

reboot #重启

二.安装es准备工作

2.1 安装java

sudo yum install java-1.8.0-openjdk

java -version #验证java

2.2 下载es

bash 复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz
tar -xvf elasticsearch-6.5.4.tar.gz #解压

2.3创建用户和组

#创建组

groupadd es

#创建用户 组 密码

useradd es -g es -p es

#移动文件目录 把解压的elasticsearch-6.5.4 移到 /home/es下

mv elasticsearch-6.5.4 /home/es

#赋值权限

chown -R es:es /home/es/elasticsearch-6.5.4

2.4 修改sysctl.conf

vi /etc/sysctl.conf

需要在:/etc/sysctl.conf 添加上:vm.max_map_count=262144最后启动配置:sysctl -w vm.max_map_count=262144

2.5 修改limits.conf

vim /etc/security/limits.conf

配置内容 *表示所有用户生效

* soft nofile 65536

* hard nofile 65536

重新登录即可生效

可使用命令查看是否生效

ulimit -H -n

. 安装es

此处可用执行完以上操作的虚拟机克隆一台新的虚拟机,修改IP为10.1.1.33

3.1 配置文件

vi /home/es/elasticsearch-6.5.4/config/elasticsearch.yml

IP为10.1.1.32:

cluster.name: my-application

node.name: node-1

network.host: 0.0.0.0

discovery.zen.ping.unicast.hosts: ["host1", "host2"]

discovery.zen.minimum_master_nodes: 2

bash 复制代码
cluster.name: my-application

node.name: node-1

network.host: 0.0.0.0

discovery.zen.ping.unicast.hosts: ["host1", "host2"]

discovery.zen.minimum_master_nodes: 2

IP为10.1.1.33:

cluster.name: my-es-cluster

node.name: node-2

network.host: 10.1.1.33

http.port: 9200

discovery.zen.ping.unicast.hosts: ["10.1.1.32", "10.1.1.33"]

discovery.zen.minimum_master_nodes: 2

node.master: true

node.data: true

bash 复制代码
cluster.name: my-es-cluster
node.name: node-2
network.host: 10.1.1.33
http.port: 9200
discovery.zen.ping.unicast.hosts: ["10.1.1.32", "10.1.1.33"]
discovery.zen.minimum_master_nodes: 2
node.master: true
node.data: true
  • cluster.name: 集群名称,所有节点必须相同。

  • node.name: 当前节点的名称。

  • network.host: 节点绑定的 IP 地址。

  • discovery.zen.ping.unicast.hosts: 用于发现其他节点的主机列表。

  • discovery.zen.minimum_master_nodes: 主节点数量的最小值,通常是 (节点总数 / 2) + 1。

3.2 切换用户

su es

cd /home/es/elasticsearch-6.5.4/bin

./elasticsearch -d

四.测试

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

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

相关推荐
李昊哲小课1 小时前
tensorflow-cpu
大数据·人工智能·python·深度学习·数据分析·tensorflow
爬树的小蚂蚁3 小时前
Linux 修改bond后网关不生效的问题
linux·运维·服务器
洁洁!3 小时前
从零开始在亚马逊云科技 EC2上部署DeepSeek R1大语言模型:完整实战指南
服务器·科技·语言模型
风行無痕6 小时前
Ubuntu Linux系统配置账号无密码sudo
linux·服务器·ubuntu
爆农7 小时前
centos搭建dokcer和vulhub
linux·运维·centos
SZ1701102317 小时前
中继器的作用
服务器·网络·智能路由器
chenxy027 小时前
如何快速分享服务器上的文件
运维·服务器
重启就好8 小时前
【Ansible】模块详解
linux·服务器·ansible
o0o_-_8 小时前
【瞎折腾/mi50 32G/ubuntu】mi50显卡ubuntu运行大模型开坑(三)安装风扇并且控制转速
linux·运维·ubuntu
Huazzi.8 小时前
Ubuntu 22虚拟机【网络故障】快速解决指南
linux·网络·学习·ubuntu·bash·编程