1.环境信息
目前es最新版本为7以上,但鉴于网上大部分es集群选择的是es6,因此本文采取了elasticsearch-6.2.4这个版本,jdk选择jdk8,版本为:java1.8.0_101
本文选择三个节点安装es,主机信息如下
节点 | ip | es安装目录 |
---|---|---|
n1 | 192.168.3.1 | /data0/soft/elasticsearch-6.2.4 |
n2 | 192.168.3.2 | /data0/soft/elasticsearch-6.2.4 |
n3 | 192.168.3.3 | /data0/soft/elasticsearch-6.2.4 |
1) 安装jdk(步骤略),并通过java -version查看jdk版本信息;
2)选择es安装目录,本文安装目录为:/data0/soft,下载es,并解压;
3)创建es用户(注:es不允许root用户执行,否则,启动es会报错),本文选择的是系统已有的的elastic用户,对解压的后的es目录执行 chown -R elastic:elastic /elasticsearch-6.2.4 命令,进行目录用户授权;
4)修改配置文件:进入es安装目录中的config文件夹,分别编辑elasticsearch.yml和jvm.options;
文件(注:此文件根据系统条件,可自行调整es的jvm参数,默认xms1g,xmx1g,xss1m,也可以保持默认,本文保持默认参数),其中elasticsearch.yml配置内容如下(后面根据需求可以进一步优化):
cluster.name: elastic #es集群名称,全局唯一 node.name: n1 #es节点名称,该字段在各es节点自行修改 path.data: /data/soft/elasticsearch-6.2.4/data/data #es节点数据存储目录 path.logs: /data/soft/elasticsearch-6.2.4/data/logs #es节点日志存储目录 network.host: 0.0.0.0 #节点的ip http.port: 9200 #es节点端口 discovery.zen.ping.unicast.hosts: ["192.168.3.1", "192.168.3.2","192.168.3.3"] #es集群所有ip gateway.recover_after_nodes: 3 #一个集群中的N个节点启动后,才允许进行恢复处理 bootstrap.system_call_filter: false #centos6.x操作系统不支持SecComp,而elasticsearch 6.2.4默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
5)es安装目录节点分发:第一个节点配置完成后,执行scp -r root@n2:/data/soft 分发到第二个节点,第三个节点类似;分发完成后,修改config目录中elasticsearch.yml配置文件中的node.name属性值,改为对应节点的取值;
6)查看Linux系统配置文件/etc/security/limits.conf 和/etc/sysctl.conf,并按需要对其进行修改;
其中/etc/security/limits.conf 增加如下配置,修改完成后,重新登录es用户执行ulimit -n和ulimit -u,查看设置是否生效
* - nproc 65535 * - nofile 409600
/etc/sysctl.conf增加如下配置,修改完成后,执行sysctl -p命令使配置生效
# 一个进程可以拥有的VMA(虚拟内存区域)的数量: vm.max_map_count=262144 # 调用虚拟内存的阈值数: vm.swappiness=1
7)启动es:使用es用户,分别对es各节点,进入到es安装目录的bin目录,执行./elasticsearch脚本(注:第一次可以这样启动,便于通过日志查看节点启动状况,后续可通过 nohup ./elasticsearch & 后台启动)
8)执行 tail -n 200 elastic.log命令查看es安装目录中的data/logs/elastic.log日志,看是否启动正常
[2019-08-12T16:53:40,341][INFO ][o.e.n.Node ] [n1] started [2019-08-12T16:53:42,982][INFO ][o.e.m.j.JvmGcMonitorService] [n1] [gc][6] overhead, spent [336ms] collecting in the last [1s] [2019-08-12T16:53:45,417][INFO ][o.e.c.s.MasterService ] [n1] zen-disco-node-join[{n2}{tcNzK3LeTFGWOzCIqMPK6Q}{h746gQsETIGcs0TVyv_Mgg}{10.20.112.31}{10.20.112.31:9300}], reason: added {{n2}{tcNzK3LeTFGWOzCIqMPK6Q}{h746gQsETIGcs0TVyv_Mgg}{10.20.112.31}{10.20.112.31:9300},} [2019-08-12T16:53:45,476][INFO ][o.e.c.s.ClusterApplierService] [n1] added {{n2}{tcNzK3LeTFGWOzCIqMPK6Q}{h746gQsETIGcs0TVyv_Mgg}{10.20.112.31}{10.20.112.31:9300},}, reason: apply cluster state (from master [master {n1}{K7gYCI_aQfOXY1u7HhYn7w}{XIugL3AsQR2Mb8HB_N7AwA}{10.20.112.30}{10.20.112.30:9300} committed version [2] source [zen-disco-node-join[{n2}{tcNzK3LeTFGWOzCIqMPK6Q}{h746gQsETIGcs0TVyv_Mgg}{10.20.112.31}{10.20.112.31:9300}]]]) [2019-08-12T16:53:45,479][WARN ][o.e.d.z.ElectMasterService] [n1] value for setting "discovery.zen.minimum_master_nodes" is too low. This can result in data loss! Please set it to at least a quorum of master-eligible nodes (current value: [-1], total number of master-eligible nodes used for publishing in this round: [2]) [2019-08-12T16:53:45,561][INFO ][o.e.c.r.a.DiskThresholdMonitor] [n1] low disk watermark [85%] exceeded on [K7gYCI_aQfOXY1u7HhYn7w][n1][/data0/soft/elasticsearch-6.2.4/data/data/nodes/0] free: 22.3gb[11.3%], replicas will not be assigned to this node [2019-08-12T16:53:52,412][INFO ][o.e.c.s.MasterService ] [n1] zen-disco-node-join[{n3}{BtgWonf6QgyHZE-ZPUrPLg}{PA36fjM5RlqWoTLBpsd-QQ}{10.20.112.32}{10.20.112.32:9300}], reason: added {{n3}{BtgWonf6QgyHZE-ZPUrPLg}{PA36fjM5RlqWoTLBpsd-QQ}{10.20.112.32}{10.20.112.32:9300},} [2019-08-12T16:53:52,587][INFO ][o.e.c.s.ClusterApplierService] [n1] added {{n3}{BtgWonf6QgyHZE-ZPUrPLg}{PA36fjM5RlqWoTLBpsd-QQ}{10.20.112.32}{10.20.112.32:9300},}, reason: apply cluster state (from master [master {n1}{K7gYCI_aQfOXY1u7HhYn7w}{XIugL3AsQR2Mb8HB_N7AwA}{10.20.112.30}{10.20.112.30:9300} committed version [3] source [zen-disco-node-join[{n3}{BtgWonf6QgyHZE-ZPUrPLg}{PA36fjM5RlqWoTLBpsd-QQ}{10.20.112.32}{10.20.112.32:9300}]]]) [2019-08-12T16:53:52,615][INFO ][o.e.c.r.a.DiskThresholdMonitor] [n1] low disk watermark [85%] exceeded on [K7gYCI_aQfOXY1u7HhYn7w][n1][/data0/soft/elasticsearch-6.2.4/data/data/nodes/0] free: 22.3gb[11.3%], replicas will not be assigned to this node [2019-08-12T16:53:53,194][INFO ][o.e.g.GatewayService ] [n1] recovered [1] indices into cluster_state [2019-08-12T16:53:54,057][INFO ][o.e.c.r.a.AllocationService] [n1] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[cgs][0], [cgs][1], [cgs][4]] ...]). [2019-08-12T16:53:55,031][INFO ][o.e.c.r.a.AllocationService] [n1] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[cgs][4]] ...]). [2019-08-12T16:54:10,386][INFO ][o.e.c.r.a.DiskThresholdMonitor] [n1] low disk watermark [85%] exceeded on [K7gYCI_aQfOXY1u7HhYn7w][n1][/data0/soft/elasticsearch-6.2.4/data/data/nodes/0] free: 22.3gb[11.3%], replicas will not be assigned to this node [2019-08-12T16:54:40,407][INFO ][o.e.c.r.a.DiskThresholdMonitor] [n1] low disk watermark [85%] exceeded on [K7gYCI_aQfOXY1u7HhYn7w][n1][/data0/soft/elasticsearch-6.2.4/data/data/nodes/0] free: 22.3gb[11.3%], replicas will not be assigned to this node
启动完成后,在浏览器输入http://n1:9200 (n1改为n2,n3都可以),看是否返回正常,下面为返回示例
{ "name" : "n1", "cluster_name" : "elastic", "cluster_uuid" : "MbeLd9bUQD2lQJm5cBfk7A", "version" : { "number" : "6.2.4", "build_hash" : "ccec39f", "build_date" : "2018-04-12T20:37:28.497551Z", "build_snapshot" : false, "lucene_version" : "7.2.1", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
附:es简单操作:
a.新增索引库:curl -XPUT n1:9200/cgs b.插入数据:curl -H "Content-Type: application/json" -XPUT 'n1:9200/cgs/test_cgs/1?pretty' -d '{"name":"cgs","age":24}' c.查询数据:http://n1:9200/cgs/test_cgs/1,响应内容如下: {"_index":"cgs","_type":"test_cgs","_id":"1","_version":1,"found":true,"_source":{"name":"cgs","age":24}}