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"

相关推荐
十年磨一剑~12 分钟前
C实现md5功能
linux·算法
CZIDC33 分钟前
信创服务器-大国崛起,信创当道!
运维·服务器
得物技术40 分钟前
得物自研DGraph4.0推荐核心引擎升级之路
大数据
Huazzi.1 小时前
【Caddy】:现代化、自动 HTTPS 的 Web 服务器新星
服务器·前端·https·web
maomi_95261 小时前
操作系统之系统IO
服务器·前端·数据库
F36_9_1 小时前
如何通过工具实现流程自动化
大数据·人工智能
EasyGBS1 小时前
视频融合平台EasyCVR可视化AI+视频管理系统,打造轧钢厂智慧安全管理体系
大数据·网络·人工智能·音视频
星辰瑞云1 小时前
Spark-SQL核心编程3
大数据·分布式·spark
liyongjun63161 小时前
Zookeeper 命令返回数据的含义
linux·服务器·zookeeper
dessler1 小时前
Kubernetes(k8s)-服务目录(ServiceCatalog)介绍(二)
linux·运维·kubernetes