首页 > 其他分享 >解决ES磁盘空间占用过高&fluentd日志积压严重问题

解决ES磁盘空间占用过高&fluentd日志积压严重问题

时间:2023-05-30 16:37:46浏览次数:45  
标签:fluentd watermark 磁盘空间 cluster xx routing disk ES

背景:

有场景会出现因没有关注到,导致es-data的磁盘使用占用超过85%,es 集群的默认配置是当集群中的某个节点磁盘达到使用率为 85% 的时候,就不会在该节点进行创建副本,当磁盘使用率达到 90% 的时候,尝试将该节点的副本重分配到其他节点。当磁盘使用率达到95% 的时候,当前节点的所有索引将被设置为只读索引。

这种情况的处理一般是清理一些历史无用的索引,腾出空间,但此时执行curl -X DELETE 删除索引命令会报如下错误

{"error":{"root_cause":[{"type":"process_cluster_event_timeout_exception","reason":"failed to process cluster event (delete-index [[kube-system-logstash-2022.02.06/mvJWj2LORo-SCBDEMyRKvQ]]) within 30s"}],"type":"process_cluster_event_timeout_exception","reason":"failed to process cluster event (delete-index [[kube-system-logstash-2022.02.06/mvJWj2LORo-SCBDEMyRKvQ]]) within 30s"},"status":503}

此时,建议先找一下占用空间大的索引,在curl -X DELETE命令后加上一个比较大的超时时间,将空间腾出来之后,删索引就会正常,例如

 
curl -X DELETE -u admin:xxxxxxxxxx -k https://xx.xx.xx.xx:9200/system-nacos-logstash-2022.07.23?master_timeout=10m

如果有需求可以将此限制调高,调整方式为通过 es 的 api 进行更改。transient 临时更改,persistent是永久更改。

api 接口 /_cluster/settings

1、查看es 当前的配置

查看es 当前的配置 get 请求 /_cluster/settings

curl -k -uadmin:xxxxxxxxxxxxxx https://xx.xx.xx.xx:9200/_cluster/settings

 

 2、更改配置

临时更改 transient重启后配置失效

{"transient":
{
"cluster.routing.allocation.disk.watermark.low": "90%",
"cluster.routing.allocation.disk.watermark.high": "95%",
"cluster.info.update.interval": "1m"
}
}

示例

curl -k -uadmin:xxxxxxxxxxxx -H "Content-Type: application/json" -XPUT https://10.109.246.149:9200/_cluster/settings -d '
{"transient":
{
"cluster.routing.allocation.disk.watermark.low": "90%",
"cluster.routing.allocation.disk.watermark.high": "95%",
"cluster.info.update.interval": "1m"
}
}
'

 

 永久更改 persistent重启后不失效。

{"persistent":
{
"cluster.routing.allocation.disk.watermark.low": "90%",
"cluster.routing.allocation.disk.watermark.high": "95%",
"cluster.info.update.interval": "1m"
}
}
#示例
curl -k -uadmin:xxxxxxxxx -H "Content-Type: application/json" -XPUT https://10.109.246.149:9200/_cluster/settings -d ' {"persistent": { "cluster.routing.allocation.disk.watermark.low": "90%", "cluster.routing.allocation.disk.watermark.high": "95%", "cluster.info.update.interval": "1m" } } '

 

 

二、fluentd日志积压严重处理

fluentd的配置文件kube-system 下的cm  fluentd,中有关于缓冲区的配置,默认一般为20G,日志积压一旦超过20G,就会导致fluentd异常,无法写入

 

 处理方法:

cd /var/log/td-agent/buffer/elasticsearch/
ls -lh |tail -100| awk '{print $9}' |xargs -i  mv {}  /root/linshi/

根据情况,将一部分缓冲区文件挪到一个其他目录,然后重启fluentd,让其正常写入es。

等到写完之后,再将移走的日志,重新放回缓冲区目录,再重启fluentd即可。

标签:fluentd,watermark,磁盘空间,cluster,xx,routing,disk,ES
From: https://www.cnblogs.com/putaoo/p/17443606.html

相关文章

  • AtCoder Regular Contest 161
    PrefaceARC战俘闪总出列这场一上来就感觉状态不太对,先是A顺序敲反WA了一发,然后C题看到秒出一个贪心然后也WA了看一眼榜发现D过的比C多,然后跑去把D写了,中间还偷偷挂了两发最后50min回去沉淀C题,结果换了两种写法都还是一样的挂,后面发现想法还是有纰漏总结:彩笔A-MakeM考虑......
  • css 动画 keyframes
    动画是CSS3中最具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果.相比较过渡效果,动画可以实现更多变化,更多控制,连续播放等效果.动画的基本使用:步骤分为两步:1.定义动画2.调用动画一.定义动画(类似定义类选择器)@keyframesmov......
  • 根据ProcessId获取进程的窗口句柄
    functionTForm1.GetHWndByPID(consthPID:THandle):THandle;typePEnumInfo=^TEnumInfo;TEnumInfo=recordProcessID:DWORD;HWND:THandle;end;functionEnumWindowsProc(Wnd:DWORD;varEI:TEnumInfo):Bool;stdcall;var......
  • 批量解除es索引只读状态脚本
    背景:elasticsearch磁盘超过80%后,会出现连接都正常,写接口也不报错,只是数据没有写入,当然也就无法查询到。经过查找原因,原来磁盘超过80%后,es默认会变成只读模式,扩容后,也不会自动还原。判断是否索引只读命令curl-uadmin:xxxxxxxxx-khttps://xx.xx.xx.xx:9200/index-name/_sett......
  • 24万QQ伤感签名微信签名ACCESS\EXCEL数据库
    再在越来越多的地方不但需要昵称,同时也可以设置昵称下面的个人签名,官方叫“个性签名”。百度百科的解释是:是指你在某个论坛(BBS)注册之后,就可以设置自己的签名了,即在你的每个帖子底部显示的文字,有些象便签抬头。由于每个网友所写的文字都不同,有格言、有谚语、有调侃语句等等,也有......
  • 解决es存储的日志显示不完整问题
    背景:通过服务的实时日志和从kibana中查询到的不一致,实时日志会显示的更多。解决方法:修改fluentdconfigmap按照下图的方式fluentd配置中filter下,如图下图位置增加以下配置`#Concatenatemulti-linelogs(>=16KB)<filterkubernetes.**>@typeconcat......
  • springboot-解决项目编译后resources下文件生成乱码问题
    SpringBoot项目下resources文件项目编译之后resources下文件会生成乱码,是说明maven打包的时候出现问题缺少一个插件<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId>......
  • CF1398E Two Types of Spells 题解 set
    题目链接:https://codeforces.com/problemset/problem/1398/E题目大意你有一个集合,初始为空。有两种类型的元素,一种是普通元素,一种是强化元素,两种元素都有一个数值。有\(n\)次操作,每次操作会往集合中加入一个元素或者删除一个元素。每次操作后,你都需要确定集合中元素的一个......
  • android开发java.lang.NoClassDefFoundError: org/jetbrains/kotlin/cli/common/Prope
    问题:编译Android项目出现java.lang.NoClassDefFoundError:org/jetbrains/kotlin/cli/common/PropertiesKt原因:项目使用发JDK版本和Kotlin版本不一致或者说不对应导致gradle找不到对应的类解决方法:我的解决方法是降低JDK的版本到1.8,具体操作是OpenModulesSettings->SDKLoc......
  • 活动回顾|阿里云 Serverless 技术实战与创新上海站回放&PPT下载
    5月27日“阿里云Serverless技术实战与创新”上海站圆满落幕。活动现场邀请了来自阿里云一线技术专家,分享当前Serverless趋势和落地实践过程中的挑战和机遇;带来数据库Serverless技术架构及应用实践;浅析云原生时代开发者需要的Serverless能力,为开发者日常应用,就业、提升......