elasticsearch 6.0.0(多节点安装) + kibana 6.0.0集群环境搭建

版本

elasticsearch-6.0.0.tar.gz
kibana-6.0.0-linux-x86_64.tar.gz

elasticsearch搭建

 1. ES不能使用root用户启动,所以我们需要先增加用户:

(查询了许多博客,别的博主说更改一些相关配置就可以使用root用户启动elasticsearch了,但是我配置过后仍旧不可以使用root用户启动,不明原由,希望解决了相关问题的小伙伴留言指点一下)

useradd elk
2. 解压安装包
tar -zxvf elasticsearch-6.0.0.tar.gz -C /usr/local
 3.  更改目录的用户和组
chown -R elk.elk /usr/local/elasticsearch-6.0.0
 4.  切换用户
su elk
5. 修改配置文件
vi /usr/local/elasticsearch-6.0.0/config/elasticsearch.yml

由于我是单台服务器多个es节点因此依靠port对节点进行区分
集群规划:

功能 192.168.205.169:9200 192.168.205.169:9201 192.168.205.170:9200 192.168.205.170:9201 192.168.205.170:9202
master true false false false false
负载均衡 false true false false false
data false false true false false
data false false false true false
data false false false false true

master节点配置:

cluster.name: es6.0
node.name: node-0
node.master: true
node.data: false
path.data: /home/elk/node-0/data
path.logs: /home/elk/node-0/logs
network.host: 192.168.205.169
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.205.169:9300", "192.169.205.169:9301"]
#官网中为防止脑裂master个数为符合master节点数/2+1
discovery.zen.minimum_master_nodes: 1
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
http.cors.enabled: true
http.cors.allow-origin: "*"

负载均衡节点的配置:

cluster.name: es6.0
node.name: node-1
node.master: false
node.data: false
path.data: /home/elk/node-1/data
path.logs: /home/elk/node-1/logs
network.host: 192.168.205.169
transport.tcp.port: 9301
http.port: 9201
discovery.zen.ping.unicast.hosts: ["192.168.205.169:9300", "192.169.205.169:9301", "192.169.205.170:9300", "192.169.205.170:9301", "192.169.205.170:9302"]
discovery.zen.minimum_master_nodes: 1
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
http.cors.enabled: true
http.cors.allow-origin: "*"

data节点

cluster.name: es6.0
node.name: node-2
node.master: false
node.data: true
path.data: /home/elk/node-2/data
path.logs: /home/elk/node-2/logs
network.host: 192.168.205.170
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.205.169:9300", "192.169.205.169:9301", "192.169.205.170:9300", "192.169.205.170:9301", "192.169.205.170:9302"]
discovery.zen.minimum_master_nodes: 1
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
http.cors.enabled: true
http.cors.allow-origin: "*"

注:
master和data同时配置会产生一些奇异的效果:
1) 当master为false,而data为true时,会对该节点产生严重负荷;
2) 当master为true,而data为false时,该节点作为一个协调者;
3) 当master为false,data也为false时,该节点就变成了一个负载均衡器。
在root用户下修改系统配置文件

6. 启动es时会报这样的错误,会直接stop
ERROR: [2] bootstrap checks failed  
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]  
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]  

因此需要更改两个系统配置文件
第一个:

vi /etc/security/limits.conf

增加内容:

* soft nofile 65536


* hard nofile 131072


* soft nproc 2048


* hard nproc 4096

官方建议锁住swapping(因为内存交换到磁盘对服务器性能来说是致命的,当然你可以根据自己的需求去选择),我选择锁住swapping因此需要在这个配置文件下再增加两行代码

elk soft memlock unlimited
elk hard memlock unlimited

第二个:

vi /etc/sysctl.conf

增加内容:

vm.max_map_count=262144 

之后需要执行一句命令使系统配置生效:

sysctl -p 

根据官方文档相关建议需要对jvm进行一些修改,不然很容易出现OOM

vi /usr/local/elasticsearch-6.0.0/config/jvm.options

参考官网改参数配置最好不要超过内存的50%
我在这里做了如下更改
将-Xmx1g改成-Xmx20g
将-Xms1g改成-Xms20g

-Xms20g
-Xmx20g
7. 在bin目录下启动elasticsearch,并挂在后台运行

注:不能在root下启动需要切换到添加的用户下启动elasticsearch服务

./elasticsearch -d
8.  访问地址验证安装是否成功

ip:9200

kibana的安装

1.  解压安装包:
tar -zxvf kibana-6.0.0-linux-x86_64 -C /usr/local
2. 在config目录下修改配置文件kibana.yml
server.host: "192.168.205.169"
server.name: "es6.0"
elasticsearch.url: "http://ip:9200"
3. 在bin目录下启动kibana服务并挂在后台运行
nohup ./kibana &
4.  访问地址访问地址验证成功安装

ip:5601

你可能感兴趣的:(elasticsearch)