elasticsearch-6.0.0.tar.gz
kibana-6.0.0-linux-x86_64.tar.gz
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
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