你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文档深入探讨 Azure Chaos Studio 中的 Chaos 代理 。 其中介绍了代理的工作原理、其网络访问要求、依赖项和安全注意事项,确保你具有在环境中正确部署和维护代理所需的信息。
网络访问
若要正常运行,Chaos 代理需要与 Chaos Studio 服务终结点建立出站连接。 具体而言,VM 必须能够访问:
https://<region>.agents.chaos-prod.azure.com
如果没有此连接,代理将不会收到说明或能够报告其状态。 其他网络配置点包括:
- NSG 配置:使用 ChaosStudio 服务标记来允许网络安全组中的出站流量。
- 定期验证 NSG 规则和防火墙设置是否允许出站流量流向所需的 Chaos 代理服务终结点。
- 专用连接: 可以为专用链接配置完全专用连接。 有关更多详细信息,请查看 适用于代理文档的 Chaos Studio 专用链接。
- 需要显式出站访问: 代理需要显式出站网络访问。 确保 VM 已配置 NAT 网关、负载均衡器出站规则或公共 IP,因为将来的部署可能无法使用默认出站访问。
安全
安全性是混沌代理设计的主要考虑因素:
- 托管标识: 代理使用 Azure 托管标识进行身份验证,无需在 VM 上存储机密。
- 基于角色的访问控制(RBAC): 所有混沌操作均由用户的实验启动,Azure RBAC 可确保仅执行经过授权的故障操作。
有关更多安全最佳做法和故障排除提示,请参阅 Chaos Studio 权限安全性。
监测
- Application Insights (建议)
- (可选)将基于代理的故障注入试验与 App Insights 连接,以便为正在运行的试验填充更丰富的数据。 请参阅 基于代理的实验监控
特定于 OS 的日志记录:
- Windows:利用 Windows 事件日志进行日志记录。
- Linux: 使用系统日志进行日志记录。
- 最好确保监视解决方案从 Windows 事件日志或 Linux 系统日志捕获日志,以有效诊断问题。
依赖
Chaos代理的正确运行取决于多个软件组件和系统配置:
- Linux 依赖项:
- 某些基于代理的故障需要不同的依赖项。 例如,资源压力故障取决于
stress-ng
实用工具。 - 安装程序尝试在自动安装支持的分发版(如 Debian/Ubuntu、RHEL 和 openSUSE)上自动安装
stress-ng
。 - 对于某些分发版(例如 Azure Linux(Mariner),需要手动安装依赖项。
- 有关依赖项的详细信息,请参阅 OS 兼容性页
- 某些基于代理的故障需要不同的依赖项。 例如,资源压力故障取决于
可以在 Chaos Studio 故障库文档中找到更多详细信息。
建筑
混沌代理在虚拟机(VM)上作为后台服务运行,并通过 VM 扩展进行部署。 视操作系统而定
- Windows: 作为 Windows 服务来运行。
- Linux: 作为系统服务运行。
代理使用附加到 VM 的用户分配的托管标识向 Azure Chaos Studio 进行身份验证。 它与 Chaos Studio 后端通信,以接收错误执行命令。 关键方面包括:
- 目标标识: 要作为目标的 VM 的标识。
- 试验托管标识:必须在 VM 上至少具有读者访问权限才能执行错误(试验需要)。
注释
身份和访问评审:
定期查看分配给目标标识和试验托管标识的权限,以遵循最低特权原则。
虚拟机扩展图示
假设你已通过触发基于代理的故障来安装 Chaos Studio 扩展。 下图显示了此安装将如何继续。
有关安装和标识要求的详细信息,请参阅 Chaos Studio 权限安全性。
已安装文件的文件路径
代理尝试在以下文件路径中安装自身及其依赖项:
- Windows:
C:\Packages\Plugins\Microsoft.Azure.Chaos.ChaosWindowsAgent\<version>
- Linux:
/var/lib/waagent/Microsoft.Azure.Chaos.ChaosLinuxAgent-<version>
- Linux 依赖项: 安装在上述位置的 linux-x64 文件夹中
- Linux
tc
脚本: 在以下文件路径中安装了网络故障所需的某些脚本:/.azure-chaos-agent/scripts/
维护和更新
- 保持代理及其依赖项处于最新状态,以便受益于性能改进和安全修补程序。 可以从 “验证代理状态”页完成此作。 混沌代理目前不支持自动更新。