一、环境说明:
java版本:jdk1.8.0;
操作系统:CentOS7;
ES版本ElasticSearch7.2.0;
服务器:3台,ip分别为192.168.1.100,192.168.1.101,192.168.1.102,内存都是32G。
二、软件安装:
1、3台服务器分别安装jdk,并配置JAVA_HOME;
2、3台服务器分别安装ES,安装路径为 /usr/installs/ElasticSearch-7.2.0
三、ES配置:
1、基本配置,如需要创建非root用户来启动es等,不细说。
2、/usr/installs/elasticsearch-7.2.0/config/jvm.option:
这里主要是配置jvm大小,此处根据服务器内存实际情况设定,我分配给3台服务器的都是16G
3、/usr/installs/elasticsearch-7.2.0/config/elasticsearch.yml:
192.168.1.100:
#可不加
bootstrap.memory_lock: false
#可不加
bootstrap.system_call_filter: false
#可不加
http.max_content_length: 2047mb
#集群名称
cluster.name: test
#节点名称
node.name: node-1
#数据存储路径
path.data: /usr/installs/elasticsearch-7.2.0/data
#日志存储路径
path.logs: /usr/installs/elasticsearch-7.2.0/logs
#这样配置本机可以访问
network.host: 0.0.0.0
#http端口
http.port: 9200
#集群内部通信端口
transport.tcp.port: 9300
#是否可以为主节点
node.master: true
#是否为数据节点
node.data: true
#初始主节点
cluster.initial_master_nodes: ["node-1"]
#可以跨域
http.cors.enabled: true
#所有域名都可以访问
http.cors.allow-origin: "*"
#集群节点列表
discovery.seed_hosts: ["192.168.1.100","192.168.1.101","192.168.1.102"]
#可不加
discovery.zen.minimum_master_nodes: 1
192.168.1.101:
#可不加
bootstrap.memory_lock: false
#可不加
bootstrap.system_call_filter: false
#可不加
http.max_content_length: 2047mb
#集群名称
cluster.name: test
#节点名称
node.name: node-2
#数据存储路径
path.data: /usr/installs/elasticsearch-7.2.0/data
#日志存储路径
path.logs: /usr/installs/elasticsearch-7.2.0/logs
#这样配置本机可以访问
network.host: 0.0.0.0
#http端口
http.port: 9200
#集群内部通信端口
transport.tcp.port: 9300
#是否可以为主节点
node.master: true
#是否为数据节点
node.data: true
#初始主节点
cluster.initial_master_nodes: ["node-1"]
#可以跨域
http.cors.enabled: true
#所有域名都可以访问
http.cors.allow-origin: "*"
#集群节点列表
discovery.seed_hosts: ["192.168.1.100","192.168.1.101","192.168.1.102"]
#可不加
discovery.zen.minimum_master_nodes: 1
192.168.1.102:
#可不加
bootstrap.memory_lock: false
#可不加
bootstrap.system_call_filter: false
#可不加
http.max_content_length: 2047mb
#集群名称
cluster.name: test
#节点名称
node.name: node-3
#数据存储路径
path.data: /usr/installs/elasticsearch-7.2.0/data
#日志存储路径
path.logs: /usr/installs/elasticsearch-7.2.0/logs
#这样配置本机可以访问
network.host: 0.0.0.0
#http端口
http.port: 9200
#集群内部通信端口
transport.tcp.port: 9300
#是否可以为主节点
node.master: true
#是否为数据节点
node.data: true
#初始主节点
cluster.initial_master_nodes: ["node-1"]
#可以跨域
http.cors.enabled: true
#所有域名都可以访问
http.cors.allow-origin: "*"
#集群节点列表
discovery.seed_hosts: ["192.168.1.100","192.168.1.101","192.168.1.102"]
#可不加
discovery.zen.minimum_master_nodes: 1
四、一些常见异常、错误信息及解决方法:
1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决方法:
切换到root用户,修改/etc/security/limits.conf文件,增加如下配置,切回es-admin用户后即生效。*代表所有用户都有效。
* soft nofile 65536
* hard nofile 65536
2、max number of threads [3818] for user [es] is too low, increase to at least [4096]
解决方法:
修改配置文件/etc/security/limits.conf,增如下加配置项
* soft nproc 4096
* hard nproc 4096
3、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [655360]
解决方法:
修改/etc/sysctl.conf文件,增加如下配置。
vm.max_map_count=655360
保存后,执行sysctl -p ,修改生效。
4、远程无法访问或者日志中报连接失败的错误
解决方法:防火墙开通相应的9200和9300端口,或者关闭防火墙。
5、received a newer join from...
解决方法:检查cluster.initial_master_nodes: ["node-1"],这里配置多个节点,可能出现这个错误