概述:Elasticsearch 集群 版本 7.3.3 ,服务器数:140,节点数:270 ,版本 7.3.1,数据总数量为457.4TB,平台每月数据量为60T左右、单索引存储量:月的16T,日的2T。 每天实时接口调用大约在5000w次左右,平均每秒请求达到462次,一次请求大约在100ms以内。
前言
在维护 Elasticsearch 集群的过程中,我们会经常遇到将某个 ElasticSearch 节点临时下线,比如机器换硬盘,系统参数调整,调整完毕后,再将 ElasticSearch 实例重新上线。ElasticSearch 提供了非常便利的API来支持这一点。
集群一共 270 个节点,发现一个节点报错率很高,把这个节点下线,集群就恢复正常;
Kibana 界面执行方法
1. 查看集群
检查集群是否已经有节点数据被排除
GET /_cluster/settings?pretty
2. 排除/下线节点
注意 这个操作是 transient ,集群重启后,这个设置会失效。
PUT _cluster/settings
{
"transient" : {
"cluster.routing.allocation.exclude._name" : "node-82-1"
}
}
2.1 ES 集群单节点单实例排除/下线
PUT /_cluster/settings
{
"persistent" :{
"cluster.routing.allocation.exclude._name" : "node-82-1"
},
"transient" :{
"cluster.routing.allocation.exclude._name" : "node-82-1"
}
}
2.2 ES 集群单节点单实例排除/下线
PUT /_cluster/settings
{
"persistent" :{
"cluster.routing.allocation.exclude._name" : "node-82-1,node-82-2"
},
"transient" :{
"cluster.routing.allocation.exclude._name" : "node-82-1,node-82-2"
}
}
3. 查看 shard 迁移
配置完成以后,可以看到 shard 在集群中开始迁移.
GET /_cat/shards?v&pretty&s=state:desc
4. 上线节点
ES集群节点实例重新加入集群
PUT _cluster/settings
{
"persistent": {
"cluster": {
"routing": {
"allocation.exclude": {
"_name":""
}
}
}
}
}
PUT _cluster/settings
{
"transient": {
"cluster": {
"routing": {
"allocation.exclude": {
"_name":""
}
}
}
}
}
除了_name 之外, 还可以用_ip、_host进行匹配