快速入门:在正在运行的 EC2 Linux 实例上安装和配置 CloudWatch 日志代理 - Amazon CloudWatch 日志
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

快速入门:在正在运行的 EC2 Linux 实例上安装和配置 CloudWatch 日志代理

重要

已弃用较旧的日志代理。 CloudWatch 包括一个可以从 EC2 实例和本地服务器收集日志和指标的统一代理。有关更多信息,请参阅 CloudWatch 日志入门

有关从较旧的 CloudWatch Logs 代理迁移到统一代理的信息,请参阅使用向导创建 CloudWatch 代理配置文件

较早版本的日志代理仅支持 Python 2.6 至 3.5 版本。此外,较旧的 CloudWatch 日志代理不支持实例元数据服务版本 2 (imdsv2)。如果您的服务器使用 imdsv2,则必须使用较新的统一代理而不是较旧 CloudWatch 的 Logs 代理。

本节的其余部分将介绍如何为仍在使用旧版 CloudWatch 的 Logs 代理的客户使用该代理。

提示

CloudWatch 包括一个新的统一代理,可以从 EC2 实例和本地服务器收集日志和指标。如果您尚未使用较旧的 L CloudWatch ogs 代理,我们建议您使用较新的统一 CloudWatch代理。有关更多信息,请参阅 CloudWatch 日志入门

此外,较早版本的代理不支持实例元数据服务版本 2(IMDSv2)。如果您的服务器使用 imdsv2,则必须使用较新的统一代理而不是较旧 CloudWatch 的 Logs 代理。

本节的其余部分将介绍使用较旧的 CloudWatch Logs 代理。

在正在运行的 EC2 Linux 实例上配置较旧的 CloudWatch 日志代理

您可以在现有 EC2 实例上使用 CloudWatch 日志代理安装程序来安装和配置 CloudWatch 日志代理。安装完成后,日志自动从实例流向您在安装代理时创建的日志流。代理会确认它已启动,并保持运行状态,直到您禁用它为止。

除了使用代理之外,您还可以使用 CloudWatch 日志 SDK 或 Amazon CLI日志 API 发布 CloudWatch 日志数据。最 Amazon CLI 适合在命令行或通过脚本发布数据。 CloudWatch Logs SDK 最适合直接从应用程序发布日志数据或构建自己的日志发布应用程序。

步骤 1:为 CloudWatch 日志配置您的 IAM 角色或用户

CloudWatch 日志代理支持 IAM 角色和用户。如果您的实例已有一个与之关联的 IAM 角色,请确保包含下面的 IAM policy。如果您尚未将 IAM 角色分配给实例,则可以在后续步骤中使用 IAM 凭证,也可以向该实例分配 IAM 角色。有关更多信息,请参阅将 IAM 角色附加到实例

为 CloudWatch 日志配置您的 IAM 角色或用户
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Roles(角色)

  3. 通过选择角色名称来选择角色(不要选中名称旁边的复选框)。

  4. 依次选择 Attach Policies(附加策略)Create Policy(创建策略)

    打开一个新的浏览器选项卡或窗口。

  5. 选择 JSON 选项卡,然后键入以下 JSON 策略文档中的文本。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "*" ] } ] }
  6. 完成后,选择 Review policy(查看策略)。策略验证程序将报告任何语法错误。

  7. Review Policy(查看策略)页上,为创建的策略键入 Name(名称)Description(说明)(可选)。查看策略 Summary(摘要)以查看您的策略授予的权限。然后,选择 Create policy(创建策略)以保存您的工作。

  8. 关闭浏览器选项卡或窗口,然后返回到您角色的 Add permissions(添加权限)页面。选择 Refresh(刷新),然后选择新策略以将其附加到您的组。

  9. 选择 Attach Policy(附加策略)

步骤 2:在现有 Amazon EC2 实例上安装和配置 CloudWatch 日志

安装 CloudWatch 日志代理的过程会有所不同,具体取决于您的亚马逊 EC2 实例运行的是亚马逊 Linux、Ubuntu、CentOS 还是红帽。请根据实例上的 Linux 版本采用适当的步骤。

在现有 Amazon Linux 实例上安装和配置 CloudWatch 日志

从 Amazon Linux AMI 2014.09 开始, CloudWatch 日志代理与 awslogs 包一起以 RPM 安装的形式提供。早期版本的 Amazon Linux 可以通过使用 sudo yum update -y 命令更新其实例来访问 awslogs 软件包。通过将 awslogs 软件包安装为 RPM 而不是使用 CloudWatch 日志安装程序,您的实例可以定期接收来自的软件包更新和补丁, Amazon 而无需手动重新安装 Logs 代理。 CloudWatch

警告

如果您之前使用 Python 脚本安装代理,请不要使用 RPM 安装方法更新 CloudWatch 日志代理。这样做可能会导致配置问题,从而阻止 CloudWatch Logs 代理将您的日志发送到 CloudWatch。

  1. 连接到 Amazon Linux 实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的连接到您的实例

    有关连接问题的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的排除连接实例的故障

  2. 更新您的 Amazon Linux 实例以在软件包存储库中选取最新更改。

    sudo yum update -y
  3. 安装 awslogs 软件包。这是在 Amazon Linux 实例上安装 awslogs 的推荐方法。

    sudo yum install -y awslogs
  4. 编辑 /etc/awslogs/awslogs.conf 文件以配置要跟踪的日志。有关编辑此文件的更多信息,请参阅 CloudWatch Logs 代理参考

  5. 默认情况下,/etc/awslogs/awscli.conf 指向 us-east-1 区域。要将日志推送到其他区域,请编辑 awscli.conf 文件并指定该区域。

  6. 启动 awslogs 服务。

    sudo service awslogs start

    如果您运行的是 Amazon Linux 2,请使用以下命令启动 awslogs

    sudo systemctl start awslogsd
  7. (可选)检查 /var/log/awslogs.log 文件中是否有在启动服务时记录的错误。

  8. (可选)在每次系统启动时运行以下命令以启动 awslogs 服务。

    sudo chkconfig awslogs on

    如果您运行的是 Amazon Linux 2,请在每次系统启动时使用以下命令启动该服务。

    sudo systemctl enable awslogsd.service
  9. 代理运行一段时间后,您应该会在 CloudWatch控制台中看到新创建的日志组和日志流。

    有关更多信息,请参阅 查看发送到日志的 CloudWatch 日志数据

在现有 Ubuntu 服务器、CentOS 或红帽实例上安装和配置 CloudWatch 日志

如果您使用的是运行 Ubuntu 服务器、CentOS 或 Red Hat 的 AMI,请使用以下步骤在您的实例上手动安装 CloudWatch 日志代理。

  1. 连接到您的 EC2 实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的连接到您的实例

    有关连接问题的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的排除连接实例的故障

  2. 使用两个选项之一运行 L CloudWatch ogs 代理安装程序。您可以直接从 Internet 运行,也可以下载文件并独立运行。

    注意

    如果运行的是 CentOS 6.x、Red Hat 6.x 或 Ubuntu 12.04,请使用相应的步骤下载和运行单独的安装程序。这些系统不支持直接从互联网安装 CloudWatch 日志代理。

    注意

    在 Ubuntu 中,在运行以下命令之前运行 apt-get update

    要直接从 Internet 运行,请使用以下命令并按照提示操作:

    curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
    sudo python ./awslogs-agent-setup.py --region us-east-1

    如果上述命令不起作用,请尝试以下命令:

    sudo python3 ./awslogs-agent-setup.py --region us-east-1

    要下载并独立运行它,请使用以下命令并按照提示操作:

    curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
    curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/AgentDependencies.tar.gz -O
    tar xvf AgentDependencies.tar.gz -C /tmp/
    sudo python ./awslogs-agent-setup.py --region us-east-1 --dependency-path /tmp/AgentDependencies

    你可以通过指定 us-east-1、us-west-1、us-west-2、ap-southeas-1、ap-northeast-2、ap-southeast-1、ap-southeast-1、ap-southeast-2、ap-northeast-1、ap-northeast-1、ap-southeast-1、ap-southeast-1、ap-northeast-1 1、eu-central-1、eu-west-1 或 sa-east-1 区域。 CloudWatch

    注意

    有关 awslogs-agent-setup 的当前版本和版本历史记录的更多信息,请参阅 CHANGELOG.txt

    CloudWatch Logs 代理安装程序在安装过程中需要某些信息。在开始之前,您需要知道要监视的日志文件及其时间戳格式。您应准备好以下信息。

    项目 描述

    Amazon 访问密钥 ID

    如果使用 IAM 角色,请按 Enter。否则,请输入您的 Amazon 访问密钥 ID。

    Amazon 秘密访问密钥

    如果使用 IAM 角色,请按 Enter。否则,请输入您的 Amazon 私有访问密钥。

    默认区域名称

    按 Enter。默认区域为 us-east-2。您可以将它设置为 us-east-1、us-west-1、us-west-2、ap-south-1、ap-northeast-2、ap-southeast-1、ap-southeast-2、ap-northeast-1、eu-central-1、eu-west-1 或 sa-east-1。

    默认输出格式

    保留空白并按 Enter。

    要上传的日志文件的路径

    包含待发送日志数据的文件的位置。安装程序将为您提供路径建议。

    目标日志组名称

    日志组的名称。安装程序将为您提供日志组名称建议。

    目标日志流名称

    默认情况下,这是主机名称。安装程序将为您提供主机名称建议。

    时间戳格式

    指定在指定日志文件中使用的时间戳的格式。选择自定义可指定您自己的格式。

    初始位置

    数据的上传方式。设置为 start_of_file 将上传数据文件中的所有内容。设置为 end_of_file 将仅上传最近追加的数据。

    完成这些步骤后,安装程序会询问您是否需要配置另一个日志文件。对于每个日志文件,您都可以运行任意次此过程。如果没有其他要监控的日志文件,当安装程序提示设置其他日志时,请选择 N(否)。有关代理配置文件中的设置的更多信息,请参阅 CloudWatch Logs 代理参考

    注意

    不支持配置多个日志源将数据发送到单个日志流。

  3. 代理运行一段时间后,您应该会在 CloudWatch控制台中看到新创建的日志组和日志流。

    有关更多信息,请参阅 查看发送到日志的 CloudWatch 日志数据