我们有一台ES服务器,设置了每天02:00执行一次清理索引数据的定时任务,但这两天总是出现磁盘空间抖动,一线一看见超了阈值,就打电话报警,可能整晚要被叫几次,ES作为日志平台的一部分,只是为了方便我们检索日志,不影响实际业务,这就比较烦了。
除了挂起报警,一种暴力的方法,就是再设置一些定时作业时间点,简单是简单,但弊端就是有可能到点儿了,空间还有,不需要删除,但仍执行了删除,可见的数据就少了,而且如果间隔时间设置不合理,很有可能还会超阈值。
今儿单位值班,就简单思考一下,既然报警是有阈值的,那么执行删除的操作,是不是可以参考执行?
以下实现采用了shell脚本,简单的方式,当然你用python,甚至重一些的java,都可以实现类似的功能,实现原理相同,实现方式不同,无伤大雅。我们一步一步拆解来看,如何实现这一个功能。
如下是执行df -h回显,
这里我要监控的是/opt/app路径,要做的判断就是如果此路径空间使用率超过90%,则执行删除ES索引数据的操作。
首先需要获取/opt/app的空间使用率,df -h中第四列,已经给出了使用率百分比,为了获取这个值&#