elasticsearch与 kibana集群搭建

版本

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:9200192.168.205.169:9201192.168.205.170:9200192.168.205.170:9201192.168.205.170:9202mastertruefalsefalsefalsefalse负载均衡falsetruefalsefalsefalsedatafalsefalsetruefalsefalsedatafalsefalsefalsetruefalsedatafalsefalsefalsefalsetrue

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
1
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
1

增加内容:

* 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的安装

 解压安装包:

tar -zxvf kibana-6.0.0-linux-x86_64 -C /usr/local

在config目录下修改配置文件kibana.yml

server.host: "192.168.205.169"

server.name: "es6.0"

elasticsearch.url: "http://ip:9200"

 在bin目录下启动kibana服务并挂在后台运行

nohup ./kibana &
ip:5601 访问地址验证成功安装


评论区
Rick ©2018