场景介绍
有些应用在运行过程中会不断产生文件,比如下载的文件、备份文件、日志文件,我们需要在磁盘使用率过高后删除不再使用的或者过期的文件。这里我们以清理/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