1. 集群简介
三台机器,均用于保存数据且可被选为master节点
服务版本
服务 | 版本 |
---|---|
elasticsearch | 7.1.1 |
jdk | 1.8 |
1. 创建elsearch用户
不建议直接使用root用户,所以此处新建 elsearch用户
1.1 添加用户组及用户,配置密码
# 添加用户组groupadd elsearch# 添加用户useradd -m -g elsearch elsearch# 配置密码passwd elsearch
1.2 sudo权限
visudo# 在最后增加elsearch ALL=(ALL) NOPASSWD:ALL
2. 下载 & 解压
注意目录权限为:elsearch
# 下载wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-linux-x86_64.tar.gz# 解压tar xvf elasticsearch-7.1.1-linux-x86_64.tar.gz# 软链ln -s elasticsearch-7.1.1 elasticsearch
3. 配置
此配置需同步到所有机器
3.1 修改 elasticsearch.yml
配置说明:
参数 | 说明 |
---|---|
cluster.name | 集群名称,相同名称为一个集群 |
node.name | 节点名称,集群模式下每个节点名称唯一 |
node.master | 当前节点是否可以被选举为master节点,是:true、否:false |
node.data | 当前节点是否用于存储数据,是:true、否:false |
path.data | 索引数据存放的位置 |
path.logs | 日志文件存放的位置 |
bootstrap.memory_lock | 需求锁住物理内存,是:true、否:false |
bootstrap.system_call_filter | SecComp检测,是:true、否:false |
network.host | 监听地址,用于访问该es |
network.publish_host | 可设置成内网ip,用于集群内各机器间通信 |
http.port | es对外提供的http端口,默认 9200 |
discovery.seed_hosts | es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点 |
cluster.initial_master_nodes | es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master |
http.cors.enabled | 是否支持跨域,是:true,在使用head插件时需要此配置 |
http.cors.allow-origin | "*" 表示支持所有域名 |
详情配置:
vim config/elasticsearch.yml# 增加如下:cluster.name: es-testnode.name: node-3node.master: truenode.data: truepath.data: /data/es/datapath.logs: /data/es/logsbootstrap.memory_lock: falsebootstrap.system_call_filter: falsenetwork.host: 0.0.0.0# 有些时候并不需要此配置,但我这里需要..network.publish_host: 10.240.0.8http.port: 9200discovery.seed_hosts: ["10.100.0.7", "10.100.0.8"]cluster.initial_master_nodes: ["10.100.0.8"]http.cors.enabled: truehttp.cors.allow-origin: "*"
3.2 修改 jvm.options
vim config/jvm.options# 按需修改如下内存大小即可-Xms4g-Xmx4g
3.3 新建索引数据与日志数据目录
# 新建目录,注意目前权限mkdir -p /data/es/datamkdir -p /data/es/logs
4. 启动
cd bin/./elasticsearch# 后台运行./elasticsearch -d
初次启动时,可能会遇到如下图的几个错误,一一解决即可。
4.1. 每个进程最大同时打开文件数太小
vim /etc/security/limits.conf# 增加如下: # elsearch为用户名elsearch soft nofile 65536elsearch hard nofile 65536# 保存之后,退出当前用户重新登录生效,可用如下命令查看是否修改成功ulimit -Hnulimit -Sn
4.2. 申请锁定内存失败
vim config/elasticsearch.yml# 修改,不锁定内存bootstrap.memory_lock: false
4.3. 最大虚拟内存太小
vim /etc/sysctl.conf# 增加如下:vm.max_map_count=262144# 修改完之后,执行如下命令生效sysctl -p
4.4. 因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
vim config/elasticsearch.yml设置为falsebootstrap.system_call_filter: false
4.5. 最大线程数太小
vim /etc/security/limits.conf# 增加如下: # elsearch为用户名elsearch soft nproc 4096elsearch hard nproc 4096# 保存之后,退出当前用户重新登录生效,可用如下命令查看是否修改成功ulimit -Huulimit -Su
4.6 network.host 监听 0.0.0.0 之后无法组成集群
报错(警告):
 始终只有一个节点:解决:
vim config/elasticsearch.yml# 增加如下配置,用于集群内各机器间通信:network.publish_host: 10.240.0.8