运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

场景介绍

有些应用在运行过程中会不断产生文件,比如下载的文件、备份文件、日志文件,我们需要在磁盘使用率过高后删除不再使用的或者过期的文件。这里我们以清理/tmp下的临时文件为例,说明如何通过运维编排(OOS)提供的公共模板来实现此类运维操作。

解决方案

我们准备一台ECS实例,登陆进系统后,查看它的磁盘占用率:

运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

可以看到根目录所在的磁盘占用率达到了72%。查看临时文件目录,可以看到临时文件download.tmp占用了超过12G,需要清理。我们来看如何将这种常规运维任务自动化。

登录OOS控制台。如果您之前从未开通过OOS服务,请点击“立即开通”按钮,即可一键开通。OOS运维编排是安全免费的服务,请放心开通。

运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

开通后在公共模板中搜索ACS-ECS-RunCommandWhenDiskUsageLimitExceeded,找到<当某磁盘使用率超过阈值时执行命令。>这个公共模板。
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

点击“创建执行”的按钮,输入“执行描述”后,点击"下一步:设置参数"。

运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

设置清理任务的参数:
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

这里的参数分两类,前三个参数定义了在什么情况下触发执行(实例i-bp...的/dev/vda1分区上的空间使用率超过70%),一类定义了执行的内容(执行一个Shell脚本,其内容为rm -r /tmp/*,注意在生产环境使用rm命令前要先做测试)。silenceTime为3600秒代表在磁盘使用利率持续超限的情况下一小时内只会执行一次,这个参数是在无法解除报警的场景下防止频繁触发运维操作。

最后一个参数是指定执行使用RAM角色。该角色必须有足够的权限才能保证执行成功。同时,按最小权限原则来配置这个角色能够保护您的IT资产安全。

请参照为OOS服务设置RAM权限账户访问控制来配置角色。

确认执行:
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

执行创建后,创建一个磁盘使用率告警规则,当前在等待报警:
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

稍等1-2分钟后(告警规则的加载以及监控发现的延迟),由于该磁盘的使用率已经超过70%的阈值,触发了一次磁盘清理操作:
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件
点击列表上这个子执行查看详情,可以看到这个清理操作执行成功了:
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

我们登陆系统确认:
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件
可以看到/tmp下的临时文件已经被清除。

这时候执行的状态又变回等待中。这个执行会7x24小时一直执行,直到用户主动取消。只要出现磁盘超限的情况,临时文件就会被自动清理。

总结

以上以一个常见的磁盘清理任务为例,介绍了运维编排的告警运维功能。通过告警运维任务,我们将监控告警能力和运维能力结合在一起,实现自动化的处理告警,将运维同学从不期而至的短信和日常繁琐枯燥的运维操作里解放。

上面使用了一个为场景定制的公共模板,如果我们想处理磁盘占用率之外的告警呢?运维编排提供创建通用告警运维的功能,可以支持全部的云监控监控项的告警,按页面引导即可配置在指定告警发生时执行指定的模板。

下面给出了实现上述公共模板类似功能的任务配置:
设置告警规则
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

设置要触发的模板:
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件

设置触发模板使用的参数:
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件
参数中的$instanceId引用了告警消息中的实例ID信息。此任务可以监控和清理任意实例。

了解更多请参考创建告警任务文档。如有疑问可以加入运维编排客户支持钉钉群咨询。

欢迎使用OOS

OOS客户支持钉钉群:23330931

OOS管理控制台的链接

OOS帮助文档的链接

上一篇:设置自动清理mysql binlog日志和手动删除的方法


下一篇:贵阳市联合阿里云启动块数据中心云平台建设