本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
为验证应用或运维体系在面对常见的操作系统异常(如资源耗尽、服务不可用)时的韧性与响应能力,可以使用云助手插件ecsgo-scarlet在测试实例中安全、可控地模拟这些故障场景。
操作步骤
故障注入属于破坏性操作,可能导致实例网络中断、无法登录或性能急剧下降。严禁在任何生产环境或包含重要数据的实例上使用。
一、准备工作
准备一台Linux测试实例。
确保ECS实例已经安装云助手Agent,并且云助手状态为正常。具体操作,请参见查看云助手状态及异常状态处理。
使用云助手插件ecsgo-scarlet,在Linux系统内部注入相关的ECS故障,需要自行维护故障注入和恢复的次序,ecsgo-scarlet基于 Python 语言及其标准库混合Shell 脚本实现,兼容 Python 2.7 和 3.6+。
二、查看可注入的故障列表
在注入故障前,可以先验证插件是否可用,并列出当前版本支持的所有故障类型。
登录ECS实例。
访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。
进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。
使用具有sudo访问权限的用户,查看插件的帮助信息。如果成功返回用法和命令列表,则说明插件可用。
sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "--help"list:列出支持注入的故障能力。
inject:注入故障,参数后面加上具体故障场景及所需参数。
revoke:恢复故障,参数后面加上具体故障场景及所需参数。
install_deps:安装故障注入时所需的依赖工具(仅特殊场景下需要),在inject前调用。
查看支持的故障列表。
sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "list"
二、注入、验证和恢复故障
以SSH 配置文件错误(SshdConfigValidationFailed)为例,演示完整的故障注入、验证和恢复流程。
注入故障。
sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "inject SshdConfigValidationFailed"输出结果,表明原始SSH配置文件已被备份,以供故障恢复使用。
'/etc/ssh/sshd_config' -> '/etc/ssh/sshdcfg-SshdConfigValidationFaile.backup'重要注入故障可能导致实例SSH无法连接,
验证故障。
执行
echo $?命令,若返回0,表示故障注入成功。前往ECS控制台-自助问题排查,选择目标实例,单击发起诊断。可以看到异常项清单中出现SSH服务状态检查。

故障恢复。
sudo acs-plugin-manager --exec --plugin ecsgo-scarlet --paramsV2 "revoke SshdConfigValidationFailed"验证故障是否恢复。
前往ECS控制台-自助问题排查,选择目标实例,单击发起诊断。可以看到异常项清单中不再出现SSH服务状态检查。

三、批量执行与命令复用
云助手支持对多台实例批量创建/执行命令以及命令复用,可提升在测试集群中进行统一故障演练的效率。
批量执行:在执行命令的选择实例步骤中,勾选多个符合条件的测试实例,云助手会将命令同时下发到所有选中的实例上。
命令复用:通过执行并保存创建的命令会保存在我的命令页签中。后续需要重复执行相同操作时,直接找到已保存的命令并单击执行即可。