Linux系统下搭建ElasticSearch集群

本文介绍在Linux系统下搭建ElasticSearch集群的详细步骤,包括下载、解压、修改配置文件等,还提及启动时不能用root账号及可能遇到的错误,如jdk版本低等。此外,说明了安装ElasticSearch的Head插件,安装前需先安装node和npm。

Linux系统下搭建ElasticSearch集群

三台虚拟机

192.168.111.135

192.168.111.137

192.168.111.139

这里用7.3.0版本做例子

下载链接:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz

 

下载ElasticSearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz

 

解压

tar -zxvf elasticsearch-7.3.0-linux-x86_64.tar.gz

后面加   -C  目录    可以指定解压路径

 

修改ElasticSearch的配置文件

配置文件在elasticsearch-7.3.0/config/elasticsearch.yml

vi elasticsearch.yml

按i 进入修改模式,修改完按esc退出修改模式,然后输入 :wq  保存退出

#集群名(要统一)

cluster.name: my-application

#节点名(要唯一)

node.name: node-1

#服务器地址

network.host: 192.168.111.135

#端口号

http.port: 9200

#集群服务器地址集 

discovery.zen.ping.unicast.hosts: ["192.168.111.135", "192.168.111.137", "192.168.111.139"]
discovery.zen.minimum_master_nodes: 1
#还有几个照抄的

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"

注意:

启动不能用root账号,所以要创建一个新的账号

 

# 创建elsearch组 groupadd elsearch useradd elsearch(用户名) -g elsearch(组名) -p elsearch(密码)

# 给新创建用户文件夹执行权限 chown -R elsearch:elsearch /usr/local/elasticsearch-7.3.0

# 切换elsearch用户  su elsearch

# 进入elasticsearch-7.3.0 /bin    启动  sh elasticsearch    (结尾加上 &  可后台执行)

 

可能遇见的错误:

jdk版本太低,需要用到jdk11, 7.3.0的ES有自带,不慌

#进入elasticsearch-7.3.0 /bin
vi elasticsearch

#在最上面加上这段代码,路径自己改一改
export JAVA_HOME=/usr/local/elasticsearch/elasticsearch-7.3.0/jdk
export PATH=$JAVA_HOME/bin:$PATH


if [ -x "$JAVA_HOME/bin/java" ]; then
    JAVA="/usr/local/elasticsearch/elasticsearch-7.3.0/jdk/bin/java"
else
    JAVA=`which java`
fi

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

# 编辑limits.conf
vi /etc/security/limits.conf
# 最下面追加以下内容
soft nofile 65536
hard nofile 65536

# 可能需要重新登陆一下或者 sysctl -p  一下

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

# 编辑sysctl.conf
vi /etc/sysctl.conf
# 最下面追加以下内容
vm.max_map_count=262144

#使其生效
sysctl -p

 

 

安装ElasticSearch的Head插件

注意:

安装head插件需要先安装node和npm(自行百度吧)
下载地址:https://github.com/mobz/elasticsearch-head.git
下载后执行:

# 安装module
npm install
# 运行head插件
npm run start 

最后装完大概是酱紫

<think>嗯,用户问的是如何在Linux系统上构建Elasticsearch集群。首先,我需要回忆一下之前关于Elasticsearch集群搭建的步骤。根据提供的引用内容,有三个引用涉及到安装步骤,比如引用1提到搭建步骤和注意事项,引用2提到了分发文件夹的命令xsync,引用3提到了二进制安装和keystore的创建。 首先,我应该整理搭建集群的基本流程。通常安装Elasticsearch需要先准备环境,比如Java环境,然后下载并解压安装包。接着是配置文件,特别是elasticsearch.yml里的集群名称、节点名称、网络主机、初始主节点列表等。然后可能需要处理系统配置,比如内存限制和文件描述符数量。之后是分发安装文件到其他节点,每个节点都要调整各自的配置。最后启动服务并验证集群状态。 用户提供的引用中提到使用xsync分发文件夹,这应该是在集群中的其他机器上同步安装目录。另外,引用3提到了二进制安装,所以可能用户需要的是通过二进制包安装的方式,而不是使用包管理器。需要注意版本的一致性,确保所有节点使用相同的Elasticsearch版本。 还要考虑安全配置,比如生成keystore,不过引用3中的命令是创建keystore,可能在8.x版本中安全功能更严格,需要SSL/TLS配置。但用户提供的引用中,引用2用的是7.6.2版本,引用3是8.14.2,所以可能需要分情况说明,或者统一推荐一个版本?但用户的问题没有指定版本,可能需要给出通用步骤,同时提到版本差异。 另外,系统配置部分,比如修改/etc/security/limits.conf和/etc/sysctl.conf,这些是Linux系统优化的一部分,确保Elasticsearch有足够的资源运行。需要提醒用户根据实际环境调整参数,比如内存大小。 在启动服务时,可能需要使用systemd管理,或者直接运行bin/elasticsearch。但生产环境建议用守护进程方式运行,所以创建systemd服务单元是有必要的。 验证集群状态可以通过curl或者Kibana,但用户可能没有安装Kibana,所以用curl检查节点加入情况即可。最后,注意事项里要提到版本一致、防火墙设置、资源监控,这些引用1也提到了合理配置和监控的重要性。 生成的问题部分需要围绕搭建集群的后续步骤,比如增加节点、安全加固、配置文件参数、监控方法、版本升级等。这些都是用户在搭建集群后可能遇到的问题,需要提前考虑。</think>### 在Linux系统上构建Elasticsearch集群的步骤 #### 一、环境准备 1. **操作系统要求** - 支持Linux发行版(如CentOS、Ubuntu等) - 确保所有节点时间同步(使用NTP服务) - 关闭防火墙或开放端口:9200(HTTP API)、9300(节点通信) 2. **依赖安装** - 安装Java环境(Elasticsearch 7.x需要JDK 11+,8.x需要JDK 17+) ```bash sudo apt install openjdk-17-jdk # Ubuntu示例 ``` --- #### 二、安装Elasticsearch 1. **下载和解压二进制包** ```bash wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.14.2-linux-x86_64.tar.gz tar -zxvf elasticsearch-8.14.2-linux-x86_64.tar.gz -C /opt/ ``` 2. **配置系统参数** - 修改`/etc/security/limits.conf`,添加: ```bash * soft nofile 65535 * hard nofile 65535 elasticsearch soft memlock unlimited # 用户名为elasticsearch时 ``` - 修改`/etc/sysctl.conf`,添加: ```bash vm.max_map_count=262144 ``` 执行`sysctl -p`生效[^3]。 --- #### 三、集群配置 1. **修改`elasticsearch.yml`** 配置文件路径:`/opt/elasticsearch-8.14.2/config/elasticsearch.yml` ```yaml cluster.name: my-cluster # 集群名称需一致 node.name: node-1 # 节点唯一标识 network.host: 0.0.0.0 # 绑定IP discovery.seed_hosts: ["192.168.1.101", "192.168.1.102"] # 集群节点IP列表 cluster.initial_master_nodes: ["node-1", "node-2"] # 初始主节点 ``` 2. **分发配置到其他节点** 使用工具(如`scp`或`xsync`)同步安装目录: ```bash xsync /opt/elasticsearch-8.14.2 # 需提前配置SSH免密登录[^2] ``` --- #### 四、启动与验证 1. **启动服务** 在每个节点执行: ```bash cd /opt/elasticsearch-8.14.2/bin ./elasticsearch -d # 后台运行 ``` 2. **验证集群状态** ```bash curl -XGET http://localhost:9200/_cluster/health?pretty ``` 输出应包含`"status" : "green"`和正确的节点数[^1]。 --- #### 五、注意事项 1. **安全加固**(针对Elasticsearch 8.x) - 生成keystore: ```bash ./elasticsearch-keystore create # 在bin目录下执行[^3] ``` - 配置TLS证书以实现节点间加密通信。 2. **性能优化** - 分配内存:修改`jvm.options`中的`-Xms`和`-Xmx`(不超过物理内存的50%) - 使用SSD硬盘提升I/O性能。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值