一:概括
众所周知,ELK 是现在挺成熟的大数据日志采集\分析框架,当集群中的某一台/几台 es 节点 fullgc 的时候,或者 es 有新的版本升级的时候,如何安全的重启,保证数据不丢失是此文要的目的。
二:具体操作
2.1 先停止 shard 的自动均衡
curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}
'
2.2 Kill 掉要维护的 es 节点
登录到对应的节点,执行 ps -ef|grep elasticsearch 操作,查到对应的 pid 后,执行 sudo kill -9 pid,关掉对应的 es 服务,如果是升级就是全节点
2.3 维护完毕后,重新启动维护节点的 es 服务
2.4 确保集群里的所有节点都就绪后,可通过 curl localhost:9200/_cat/nodes 进行确认,启动 shard 的自动均衡
curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
"transient": {
"cluster.routing.allocation.enable": "all"
}
}
'
2.5 等待集群的所有 shard 全部分配后,重启完毕,可通过 curl localhost:9200/_cluster/health?pretty 进行确认。
2.6 如果在恢复正常的 2 倍时间后集群状态还未 100% 就绪,通过 curl localhost:9200/_cat/shards?|grep UNASSIGNED 找到未分配好的索引列表,先把问题索引的副本数改为 0,然后再改为改之前的副本数,让集群重新分配 shard 即可
三:参考文档
官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.1/rolling-upgrades.html
-
Elasticsearch
117 引用 • 99 回帖 • 212 关注
Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于