你当前正在访问 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 扩展。 下图显示了此安装将如何继续。


显示 Azure 中的 VM 扩展平台如何与客户 VM 交谈并安装混沌工作室代理的关系图。

有关安装和标识要求的详细信息,请参阅 Chaos Studio 权限安全性

已安装文件的文件路径

代理尝试在以下文件路径中安装自身及其依赖项:

  • WindowsC:\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/


显示 Linux 计算机上 Chaos 代理的文件路径的终端示例的屏幕截图

维护和更新

  • 保持代理及其依赖项处于最新状态,以便受益于性能改进和安全修补程序。 可以从 “验证代理状态”页完成此作。 混沌代理目前不支持自动更新。