@guodong
2018-01-30T07:10:40.000000Z
字数 2433
阅读 1131
Elasticsearch
Elasticsearch可以使用滚动升级进行升级,不会中断服务。本节将详细介绍如何使用滚动升级。
为了确定是否支持您的发行版的滚动升级,请参考这张表。
滚动升级允许Elasticsearch一次升级一个节点,而不会导致用户停机。
Disable shard allocation
当关闭节点时,分配过程将等待一分钟,然后开始将该节点上的分片复制到集群中的其他节点,导致大量浪费的IO。这可以通过关闭节点之前禁用分配来避免
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "none"
}
}
Stop non-essential indexing and perform a synced flush (Optional)
在升级过程中,您可以继续索引。但是,如果临时停止非必要的索引并发出同步刷新请求,分片恢复速度会快得多
POST _flush/synced
在开始升级之前关闭集群中的一个节点
# 集群名称,各个节点的值必须一致
cluster.name: elasticsearch_production
# 节点名称,区分节点,各个节点的值不能一致
node.name: node-1
# 数据文件路径
path.data: /opt/es/data
# 日志文件路径
path.logs: /opt/es/logs
# 设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,Linux下可以通过ulimit -l unlimited命令
bootstrap.memory_lock: true
# 因为Centos6不支持SecComp,而ES5.6.4默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
bootstrap.system_call_filter: false
# 本机IP
network.host: 192.168.6.104
# 单播列表
discovery.zen.ping.unicast.hosts: ["192.168.6.104", "192.168.6.105", "192.168.6.106"]
# 防止脑裂,官方推荐设置成 N/2 + 1,N是集群中master节点的数量
discovery.zen.minimum_master_nodes: 2
# 存在至少2个节点(数据节点或者 master 节点)才进行数据恢复
gateway.recover_after_nodes: 2
# 等待10分钟,或者3个节点上线后,才进行数据恢复,这取决于哪个条件先达到
gateway.expected_nodes: 3
gateway.recover_after_time: 10m
# 禁用xpack安全认证
xpack.security.enabled: false
-Xms8g
-Xmx8g
export JAVA_HOME=/opt/jdk1.8.0_144
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*.jar
export PATH=.:$JAVA_HOME/bin:$PATH
cd /home/es/elasticsearch-5.6.4/bin
在线安装
./elasticsearch-plugin install x-pack
离线安装
wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-5.6.4.zip
./elasticsearch-plugin install file:///path/to/file/x-pack-5.6.4.zip
# 后台启动
./elasticsearch -d
# 查看节点状态
GET _cat/nodes
# 启用分片分配
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "all"
}
}
# 查看集群状态,变为Green为正常
GET _cat/health
当集群稳定并且节点已经恢复时,对所有剩余节点重复上述步骤
# 修改配置文件
vim /home/es/kibana-5.6.4-linux-x86_64/config/kibana.yml
# 本机IP
server.host: "192.168.6.104"
# 访问es的地址
elasticsearch.url: "http://192.168.6.104:9200"
# 安装x-pack插件
cd /home/es/kibana-5.6.4-linux-x86_64/bin/
./kibana-plugin install x-pack
# 启动
./kibana