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

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

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

重要

较早版本的日志代理已弃用。CloudWatch 包含一个可收集来自 EC2 实例和本地服务器的日志和指标的统一代理。有关更多信息,请参阅 开始使用 CloudWatch Logs

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

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

本节的其余部分将为仍在使用的客户介绍较早版本的 CloudWatch Logs 代理的使用。

提示

CloudWatch 包含一个可收集来自 EC2 实例和本地服务器的日志和指标的新统一代理。如果您尚未使用较旧的 CloudWatch Logs 代理,我们建议您使用较新的统一 CloudWatch 代理。有关更多信息,请参阅 开始使用 CloudWatch Logs

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

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

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

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

除了该代理之外,您还可以使用 AWS CLI、CloudWatch Logs 开发工具包或 CloudWatch Logs API 发布日志数据。AWS CLI 非常适合用于通过命令行或脚本发布数据。CloudWatch Logs 开发工具包非常适合用于直接从应用程序发布日志数据或构建您自己的日志发布应用程序。

步骤 1:为 CloudWatch Logs 配置 IAM 角色或用户

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

为 CloudWatch Logs 配置 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 Logs

安装 CloudWatch Logs 代理的过程取决于 Amazon EC2 实例运行的是 Amazon Linux、Ubuntu、CentOS 还是 Red Hat。请根据实例上的 Linux 版本采用适当的步骤。

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

从 Amazon Linux AMI 2014.09 开始,CloudWatch Logs 代理作为 RPM 安装随 awslogs 软件包提供。早期版本的 Amazon Linux 可以通过使用 sudo yum update -y 命令更新其实例来访问 awslogs 软件包。通过将 awslogs 软件包作为 RPM 安装(而不是使用 CloudWatch Logs 安装程序),实例可从AWS接收定期软件包更新和补丁,而不必手动重新安装 CloudWatch Logs 代理。

警告

如果以前是使用 Python 脚本安装的 CloudWatch Logs 代理,请勿使用 RPM 安装方法更新该代理。这样做可能会导致配置问题,使得 CloudWatch Logs 代理无法将您的日志发送到 CloudWatch。

  1. 连接到 Amazon Linux 实例。有关详细信息,请参阅《Amazon EC2 用户指南》中的连接到您的实例

    有关连接问题的更多信息,请参阅《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 Logs 的日志数据

在现有 Ubuntu Server、CentOS 或 Red Hat 实例上安装和配置 CloudWatch Logs

如果使用运行 Ubuntu Server、CentOS 或 Red Hat 的 AMI,请使用以下过程在实例上手动安装 CloudWatch Logs 代理。

  1. 连接到您的 EC2 实例。有关详细信息,请参阅《Amazon EC2 用户指南》中的连接到您的实例

    有关连接问题的更多信息,请参阅《Amazon EC2 用户指南》中的排查实例的连接问题

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

    注意

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

    注意

    在 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-south-1、ap-northeast-2、ap-southeast-1、ap-southeast-2、ap-northeast-1、eu-central-1、eu-west-1 或 sa-east-1 区域来安装 CloudWatch Logs 代理。

    注意

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

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

    项目 描述

    AWS访问密钥 ID

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

    AWS秘密访问密钥

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

    默认区域名称

    按 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 Logs 的日志数据