使用带 AWS OpsWorks 堆栈的 Amazon CloudWatch 日志 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用带 AWS OpsWorks 堆栈的 Amazon CloudWatch 日志

重要

该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS Support 团队联系。

为了简化监控多个实例上的日志的过程, AWS OpsWorks Stacks 支持 Amazon CloudWatch 日志。您可以在 AWS OpsWorks Stacks 中启用图层级别的 CloudWatch 日志。 CloudWatch 日志集成适用于基于 Chef 11.10 和 Chef 12 Linux 的堆栈。启用 “ CloudWatch 日志” 会产生额外费用,因此请在开始之前查看 Amaz CloudWatch on P ricing。

CloudWatch Logs 监视选定的日志中是否出现了用户指定的模式。例如,您可以监控关于某个字词 (例如 NullReferenceException) 的出现的日志,或计算出现这个字词的数量。启用 CloudWatch Logs in AWS OpsWorks Stacks 后,Stac AWS OpsWorks ks 代理会将日志发送到 CloudWatch Logs。有关 CloudWatch 日志的更多信息,请参阅 CloudWatch 日志入门

先决条件

在启用 CloudWatch 日志之前,您的实例必须在 Chef 11.10 堆栈中运行 3444 或更高版本的 AWS OpsWorks 堆栈代理,在 Chef 12 堆栈中运行 4023 或更高版本。对于使用 CloudWatch 日志监控的任何实例,您还必须使用兼容的实例配置文件。

如果您使用的是自定义实例配置文件( AWS OpsWorks Stacks 在创建堆栈时未提供该配置文件),则 AWS OpsWorks Stacks 无法自动升级实例配置文件。您必须使用 IAM 手动将AWSOpsWorksCloudWatchLogs策略附加到您的个人资料。相关信息,请参阅IAM 用户指南中的管理 IAM 策略

如果您需要升级代理版本或实例配置文件,当您打开 “层” 页面上的 “ CloudWatch 日志” 选项卡时, AWS OpsWorks Stacks 会显示类似于以下屏幕截图的提醒。

CloudWatch “层” 页面上的 “日志” 选项卡

更新层中所有实例上的代理可能要花费一些时间。如果您尝试在代理升级完成之前在层上启用 CloudWatch 日志,则会看到类似于以下内容的消息。

CloudWatch “层” 页面上的 “日志” 选项卡

启用 CloudWatch 日志

  1. 完成所有必需的代理和实例配置文件升级后,您可以通过将 CloudWatch 日志选项卡上的滑块控件设置为开启来启用CloudWatch 日志

    CloudWatch 日志滑块控件
  2. 要流式传输命令日志,请将 Stream command logs 滑块设置为 On。这会将您层实例上的 Chef 活动和用户启动的命令的 CloudWatch 日志发送到 Logs。

    当您打开日志 URL 的目标时,这些日志中包含的数据与您在DescribeCommands操作结果中看到的数据非常吻合。它包括关于 setupconfiguredeployundeploystartstop 和配方运行命令的数据。

  3. 要流式传输在您的层实例上的自定义位置中存储的活动日志 (如 /var/log/apache/myapp/mylog*),请在 Stream custom logs 字符串框中键入自定义位置,然后选择 Add (+)。

  4. 选择保存。几分钟后, AWS OpsWorks Stacks 日志流应会在 CloudWatch 日志控制台中可见。

    CloudWatch 日志已启用

关闭 CloudWatch 日志

要关闭 CloudWatch 日志,请编辑您的图层设置。

  1. 在您的层属性页面上,选择 Edit

    “Layer (层)”属性页面上的“Edit (编辑)”按钮
  2. 在编辑页面上,选择CloudWatch 日志选项卡。

  3. 在 “CloudWatch 日志” 区域中,关闭 “流式传输” 命令日志。选择自定义日志上的 X 以从日志流中删除它们 (如果适用)。

  4. 选择保存

从日志中删除流式处理日 CloudWatch 志

关闭从 AWS OpsWorks 堆栈流式传输 CloudWatch 日志后,日志管理控制台中仍可使用现有 CloudWatch 日志。您存储的日志仍然产生费用,除非您将日志导出到 Amazon S3 中或删除它们。有关将日志导出到 S3 的更多信息,请参阅将日志数据导出到 Amazon S3

您可以在日志管理控制台中删除日志流和日志组,也可以通过运行delete-log-streamdelete-log-group AWS CLI 命令来删除 CloudWatch 日志流和日志组。有关更改日志保留期限的更多信息,请参阅更改日志中的 CloudWatch 日志数据保留期。

在日志中管理您的 CloudWatch 日志

您正在流式传输的日志在 CloudWatch 日志控制台中进行管理。

CloudWatch 日志控制台

AWS OpsWorks 自动创建默认日志组和日志流。 AWS OpsWorks Stacks 数据的日志组拥有与以下样式相匹配的名称:

stack_name/layer_name/chef_log_name

自定义日志拥有与以下样式相匹配的名称:

/stack_name/layer_short_name/file_path_name。删除特殊字符 (如星号 (*)) 可使路径名称更具可读性。

在日志中找到日志后,您可以将 CloudWatch 日志组织成组通过创建指标筛选器来搜索和筛选日志,以及创建自定义警报

将 Chef 12.2 Windows 层配置为使用 CloudWatch 日志

CloudWatch 基于 Windows 的实例不支持日志自动集成。“日CloudWatch 志” 选项卡在 Chef 12.2 堆栈中的图层上不可用。要为基于 Windows 的实例手动启用流式传输到 CloudWatch 日志,请执行以下操作。

  • 更新基于 Windows 的实例的实例配置文件,以便 Logs CloudWatch 代理具有相应的权限。AWSOpsWorksCloudWatchLogs策略声明显示需要哪些权限。

    通常,您仅执行一次该任务。之后,对于层中的所有 Windows 实例,您可以使用更新后的实例配置文件。

  • 编辑每个实例上的以下 JSON 配置文件。此文件包括日志流首选项,如要监控哪些日志。

    %PROGRAMFILES%\Amazon\Ec2ConfigService\Settings\AWS.EC2.Windows.CloudWatch.json

您可以创建用于处理所需任务的自定义配方,并将它们分配给 Chef 12.2 层的 Setup 事件,从而自动执行上述两项任务。每次您在这些图层上启动新实例时, AWS OpsWorks Stacks 会在实例完成启动后自动运行您的配方,从而 CloudWatch 启用 Logs。

要关闭基于 Windows 的实例上的 CloudWatch 日志,请撤消该过程。清除 “EC2 服务属性” 对话框中的 “启用 CloudWatch 日志集成” 复选框,从AWS.EC2.Windows.CloudWatch.json文件中删除日志流首选项;并停止运行任何自动为 Chef 12.2 层中的新实例分配 CloudWatch 日志权限的 Chef 配方。