在Elasticsearch 5.6.6中下载程序包。
tar -zxvf elasticsearch-5.6.6.tar.gz
ln -s elasticsearch-5.6.6 elasticsearch
groupadd elk
useradd elk -g elk
chown -R elk:elk /application/elasticsearch-5.6.6
chown -R elk:elk /application/elasticsearch
将/application/elasticsearch/plugins
中的文件复制过来
将/application/elasticsearch/config
中x-pack也复制过来
将/application/elasticsearch/bin
中x-pack复制过来
注意权限:
chown -R elk:elk /application/elasticsearch/config/x-pack
chown -R elk:elk /application/elasticsearch/logs
chown -R elk:elk /application/elasticsearchplugins
启动后,提示
[2019-04-18T10:58:25,586][ERROR][o.e.b.Bootstrap ] [bwhs199] node validation exception
[2] bootstrap checks failed
[1]: max file descriptors [65535] 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/sysctl.conf
# 添加
vm.max_map_count=655360
#再执行此命令
sysctl -p
vi /etc/security/limits.conf
# 添加下面两行
* hard nofile 65536
* soft nofile 65536
在当前es节点,添加自身的host,执行./elasticsearch -d
即可
接着就可以在kibana中看到es动态平衡后的效果,shard的调整由es自身的平衡机制控制,es其他节点根本不需要重启
从下图可以看出个索引数据已经在写入了
按照上面的操作,es平均分配后,会带来一个问题.如果有一个磁盘比较小,他也会分配同样多的shard,导致很快磁盘出现报警。只是平衡分区,这样节点都一样,很容易扩展和维护
好吧,我妥协,再挂在一个磁盘把,虽然配置很简单,但是更改配置后,怎么平滑重启es呢?
chown -R elk:elk /appdata/elasticsearch/data
查看官方文档Rolling upgrades,以及elasticsearch如何安全重启节点
1、停止分区
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "none"
}
}
2、停止需要升级的节点
注意curl -XPOST http://10.101.3.199:9200/_cluster/nodes/_local/_shutdown
这个已经作废了。
ps -ef|grep elasticsearch
kill -9 xxx(pid)
3、启动需要升级的节点
sudo su -
su - elk
cd /application/elasticsearch/bin
./elasticsearch -d
4、恢复分区分配
执行GET _cat/nodes
查看节点是否起来,执行GET _cluster/health
查看集群是否监控,如果没有问题,再恢复分区,这样就可以了。
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "all"
}
}
这个分配操作消耗大量的计算资源