es 集群的磁盘存储过小的话,常常会遇到磁盘存储超90%,甚至100%。此时就需要清理一部分过期的数据释放磁盘空间,或者扩容磁盘容量。
清理索引
通过kibana
可以通过登录腾讯云es控制台 ,点击对应es集群的 Kibana
进入Kibana 登录页面,输入用户名和密码
再点击 Dev Tools (一个扳手的图标)
通过命令查看es集群中的索引
代码语言:shell复制#查看es集群中的全部索引
GET _cat/indices?v
#其中参数 v 表示返回详细的输出
#查看es集群中按照索引排序后的全部索引
GET _cat/indices?v&s=index:asc
#其中参数 s 表示输出的列进行排序,默认按照升序排序。其中desc 为倒叙
清理索引命令
代码语言:shell复制#清理单个索引
DELETE nginx-log_2020.01.22
#清理通配符匹配到的索引,清理前需要开启通配符
DELETE nginx-log_2020.01.*
#开启使用通配符
PUT _cluster/settings
{
"transient": {
"action.destructive_requires_name": "false"
}
}
查看磁盘存储
清理后查看集群各个节点的磁盘存储情况,建议最少清理到80%以下。
代码语言:shell复制#查看集群各个节点的名字、ip、磁盘使用率
GET _cat/nodes?v&h=name,ip,disk.used_percent
通过CVM
通过登录腾讯云es控制台 ,点击对应集群,在访问控制 中可以看到内网访问地址。
登录一台能访问到es集群,先测试联通性
代码语言:txt复制curl es内网ip:9200
测试成功后,查看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 '
清理索引命令
代码语言: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"
}
}'
查看磁盘存储
代码语言:shell复制#查看集群各个节点的名字、ip、磁盘使用率
GET _cat/nodes?v&h=name,ip,disk.used_percent
注,如果清理磁盘后发现有个别节点磁盘存储率是100%,请提交工单联系腾讯云。
扩容磁盘
登录腾讯云es控制台 ,点击进入要扩容磁盘的集群
点击进入调整配置
调整磁盘容量,调整后点击下一步
选择默认的直调模式,确认后进入商品清理页面
点击提交订单付费后,几分钟内就能完成磁盘扩容。
其他
- 5、6版本的es集群触发只读后,需要手动取消只读;
- 关闭索引只读状态:
PUT _all/_settings
{
"index.blocks.read_only_allow_delete": null
}
- 关闭集群只读状态:
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"
}