如何在无互联网访问权限的 Auto Scaling 组中配置 EC2 实例以将指标和日志发送到 CloudWatch?

上次更新时间:2020 年 5 月 21 日

如何在无互联网访问权限的 Amazon EC2 Auto Scaling 组中配置 Amazon Elastic Compute Cloud (Amazon EC2) 实例以将指标和日志发送到 Amazon CloudWatch?

解决方法

  1. 在 Amazon EC2 实例上安装 CloudWatch 代理。此实例必须具有互联网连接。或者,您可以选择一个已使用 CloudWatch 代理将日志和指标推送到 CloudWatch 的 Amazon EC2 实例。
  2. 验证 CloudWatch 代理是否正在从 Amazon EC2 实例推送指标和日志。
  3. 为 Auto Scaling 组的 Amazon EC2 实例创建 Amazon 系统映像 (AMI)
  4. 使用在步骤 3 中创建的 AMI 为 Auto Scaling 组创建启动模板。要让实例将指标和日志推送到 CloudWatch,请在启动模板中提供正确的 AWS Identity and Access Management (IAM) 角色。(可选)您可以从该启动模板在公有子网中启动 Amazon EC2 实例,以确认 CloudWatch 代理正在推送所需的指标和日志。
  5. 为托管私有子网的 VPC 添加 Virtual Private Cloud (VPC) 接口终端节点(用于 CloudWatch 监控和 Amazon CloudWatch Logs)。要查找正确的终端节点,请参阅 Amazon CloudWatch 终端节点和配额。有关更多详细信息,请参阅后面的“创建 VPC 接口终端节点的注意事项”。
  6. 为您在步骤 5 中创建的每个 VPC 接口终端节点更新终端节点策略:
    打开 Amazon VPC 控制台
    选择终端节点,然后选择您的接口终端节点。
    注意:您必须为每个 VPC 接口终端节点完成这些步骤。
    选择操作,然后选择编辑策略
    对于策略,请选择完全访问
    选择保存
  7. 使用您在步骤 4 中创建的启动模板来创建 Auto Scaling 组(启用私有子网)。CloudWatch 代理将在此 Auto Scaling 组中启动的实例内运行。该代理还通过您在步骤 5 中创建的 VPC 接口终端节点来发送指标和日志。

创建 VPC 接口终端节点的注意事项

  • 请务必使用与 Auto Scaling 组所在的 AWS 区域对应的终端节点。例如,如果 Auto Scaling 组位于伦敦区域,则指标的终端节点为 monitoring.eu-west-2.amazonaws.com。在这种情况下,日志的终端节点为 logs.eu-west-2.amazonaws.com
  • 确认已启用启用私有 DNS 名称选项。仅当 VPC 的启用 DNS 主机名启用 DNS 支持属性设置为 true 时,才能启用此选项。如果禁用该选项,则 VPC 接口终端节点不会映射到服务终端节点。因此,实例将无法访问公共服务终端节点。启用此选项会将服务终端节点映射到 VPC 接口终端节点,并使其与服务终端节点的通信变为专用通信。默认情况下,CloudWatch 代理将连接到此终端节点。如果需要,您可以使用代理配置文件中的 endpoint_override 参数覆盖默认终端节点。
  • 确认安全组规则允许终端节点网络接口与 VPC 中负责与服务通信的资源进行通信。用于推送日志和指标的 API 调用是基于 HTTPS 的 GET/POST 请求。终端节点网络接口安全组需要来自源 IP 的 HTTPS 协议的入站规则。源 IP 地址是负责推送指标和日志的 EC2 实例或 VPC CIDR 的 IP 地址。
  • 如果实例属于 Auto Scaling 组,请在代理配置文件中将其中一个维度指定为 Auto Scaling 组名称。为了查找 Auto Scaling 组的名称,代理会从 Amazon EC2 终端节点获取与实例关联的标签。你必须为 Amazon EC2 服务添加 VPC 接口终端节点。代理将从 Amazon EC2 实例的元数据中获取 ImageIdInstanceIdInstanceType 值。

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?