腾讯云 Elasticsearch 磁盘存储超90%处理建议

2021-10-26 21:03:08 浏览数 (1)

es 集群的磁盘存储过小的话,常常会遇到磁盘存储超90%,甚至100%。此时就需要清理一部分过期的数据释放磁盘空间,或者扩容磁盘容量。

image.pngimage.png

清理索引

通过kibana

可以通过登录腾讯云es控制台 ,点击对应es集群的 Kibana

image.pngimage.png

进入Kibana 登录页面,输入用户名和密码

image.pngimage.png

再点击 Dev Tools (一个扳手的图标)

image.pngimage.png

通过命令查看es集群中的索引

代码语言:shell复制
#查看es集群中的全部索引
GET _cat/indices?v
#其中参数 v 表示返回详细的输出

#查看es集群中按照索引排序后的全部索引
GET _cat/indices?v&s=index:asc

#其中参数 s 表示输出的列进行排序,默认按照升序排序。其中desc 为倒叙
image.pngimage.png

清理索引命令

代码语言:shell复制
#清理单个索引
DELETE nginx-log_2020.01.22


#清理通配符匹配到的索引,清理前需要开启通配符
DELETE nginx-log_2020.01.*

#开启使用通配符
PUT _cluster/settings
{
"transient": {
  "action.destructive_requires_name": "false"
}
}
image.pngimage.png

查看磁盘存储

清理后查看集群各个节点的磁盘存储情况,建议最少清理到80%以下。

代码语言:shell复制
#查看集群各个节点的名字、ip、磁盘使用率
GET _cat/nodes?v&h=name,ip,disk.used_percent
image.pngimage.png

通过CVM

通过登录腾讯云es控制台 ,点击对应集群,在访问控制 中可以看到内网访问地址。

image.pngimage.png

登录一台能访问到es集群,先测试联通性

代码语言:txt复制
curl  es内网ip:9200
image.pngimage.png

测试成功后,查看es集群中的索引

通过命令查看es集群中的索引

代码语言:shell复制
#查看es集群中的全部索引
curl  -u '用户名:密码'  -H "Content-type: application/json" -XGET 'es内网ip:9200/_cat/indices?v '

#查看es集群中按照索引排序后的全部索引
curl  -u '用户名:密码'  -H "Content-type: application/json" -XGET 'es内网ip:9200/_cat/indices?v&s=index:asc '
image.pngimage.png

清理索引命令

代码语言:shell复制
#清理单个索引
curl  -u '用户名:密码'  -H "Content-type: application/json" -XDELETE 'es内网ip:9200/nginx-log_2020.01.22 '


#清理通配符匹配到的索引,清理前需要开启通配符
curl  -u '用户名:密码'  -H "Content-type: application/json" -XDELETE 'es内网ip:9200/nginx-log_2020.01.* '

#开启使用通配符
curl  -u '用户名:密码'  -H "Content-type: application/json" -XPUT 'es内网ip:9200/_cluster/settings '  -d  '{
"transient": {
  "action.destructive_requires_name": "false"
}
}'
image.pngimage.png

查看磁盘存储

代码语言:shell复制
#查看集群各个节点的名字、ip、磁盘使用率
GET _cat/nodes?v&h=name,ip,disk.used_percent
image.pngimage.png

,如果清理磁盘后发现有个别节点磁盘存储率是100%,请提交工单联系腾讯云。

image.pngimage.png

扩容磁盘

登录腾讯云es控制台 ,点击进入要扩容磁盘的集群

image.pngimage.png

点击进入调整配置

image.pngimage.png

调整磁盘容量,调整后点击下一步

image.pngimage.png

选择默认的直调模式,确认后进入商品清理页面

image.pngimage.png

点击提交订单付费后,几分钟内就能完成磁盘扩容。

image.pngimage.png

其他

  1. 5、6版本的es集群触发只读后,需要手动取消只读;
  • 关闭索引只读状态:
代码语言:javascript复制
PUT _all/_settings
{
"index.blocks.read_only_allow_delete": null
}
  • 关闭集群只读状态:
代码语言:shell复制
PUT _cluster/settings
{
  "persistent": {
    "cluster.blocks.read_only_allow_delete": null
  },
  "transient":{
    "cluster.blocks.read_only_allow_delete": null
  }
}

2. 此时如果磁盘使用没超过95%,并且不能立刻清理索引或者扩容磁盘。可以临时调整水位线,确保集群或者索引不进入只读状态。

代码语言:javascript复制
PUT _cluster/settings
{
  "transient": {
  	"cluster.routing.allocation.disk.watermark.flood_stage": "98%",
	"cluster.routing.allocation.disk.watermark.high": "97%",
	"cluster.routing.allocation.disk.watermark.low": "95%"
  }
}

3. 此时如果磁盘使用超过95%,并且不能立刻清理索引或者扩容磁盘。可以调整索引副本个数来降低磁盘使用率,确保集群或者索引不进入只读状态。此时找一些不重要的索引调整副本数为0,磁盘空间正常后再决定是否要恢复副本数。

代码语言:shell复制
PUT index*/_settings
{
  "index.blocks.read_only_allow_delete": null,
  "number_of_replicas": "0"
}

0 人点赞