运维编排(OOS) 简介
什么是OOS
Operation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更详细的介绍请查阅 运维编排服务。
场景介绍
当ECS实例因已知或未知的原因CPU使用率过高时,往往会影响实例上应用的运行状态,造成应用运行缓慢甚至卡死。这是如果通过重启实例能够将ECS实例的CPU使用率快速恢复到较低的水平,就能够避免对应用的影响。在这个场景中,可以使用OOS告警触发功能,将CPU使用率高的实例自动重启,从而达到无人值守自动恢复的效果。
操作步骤
-
单击 告警与事件运维 ,单击 创建 。
-
设置 触发规则 。
-
产品类型选择 云服务器ECS ,在规则描述中选择触发条件;本文选择当 cpu_total 大于80%时,触发告警操作,即进行重启实例; 触发沉默周期 默认为5分钟,即5分钟内不会因为重复的告警而重启实例。
-
在需要 报警资源 中,选择要监控CPU使用率的实例。
-
设置模板参数。选择 从告警消息体选择参数 。
-
地域ID 、 目标实例 、 任务执行的并发比率 保留默认配置即可。
-
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RebootInstance",
"ecs:DescribeInstances"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
-
设置完成后,单击 创建 。
结果验证
针对本文中的场景,可以通过压测工具 stress-ng 模拟CPU使用率高的情况。
-
远程连接 登录到监控的ECS实例。
-
安装stress-ng
# AliyunLinux/CentOS/RHEL
yum install stress-ng -y
# Ubuntu/Debian
apt-get install stress-ng -y
-
运行stress-ng命令模拟CPU使用。
# stress-ng命令可以根据压测需求调整参数。
# 示例命令中,使用stress-ng压测2个CPU核,CPU负载设置为85%,运行5分钟后停止。
stress-ng --cpu 2 --cpu-load 85 --timeout 5m
-
压测1分钟左右,观察告警触发被执行,运行命令的ECS实例被重启成功,ECS实例的CPU使用率也下降。