Amazon CloudWatch Logs
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

快速入门:启动时在 EC2 Linux 实例上安装和配置 CloudWatch Logs 代理

提示

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

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

启动时在 EC2 Linux 实例上安装较旧的 CloudWatch Logs 代理

您可以使用 Amazon EC2 用户数据,这是 Amazon EC2 的一项功能,允许在启动时将参数信息传递给实例,以在该实例中安装和配置 CloudWatch Logs 代理。要将 CloudWatch Logs 代理安装和配置信息传递给 Amazon EC2,您可以提供处于某个网络位置(例如 Amazon S3 存储桶)的配置文件。

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

先决条件

创建用于描述所有日志组和日志流的代理配置文件。这是一个文本文件,描述要监控的日志文件以及要将这些文件上传到的日志组和日志流。代理使用此配置文件并开始监控并上传其中描述的所有日志文件。有关代理配置文件中的设置的更多信息,请参阅 CloudWatch Logs 代理参考

以下是适用于 Amazon Linux 的一个示例代理配置文件

[general] state_file = /var/awslogs/state/agent-state [/var/log/messages] file = /var/log/messages log_group_name = /var/log/messages log_stream_name = {instance_id} datetime_format = %b %d %H:%M:%S

以下是适用于 Ubuntu 的一个示例代理配置文件

[general] state_file = /var/awslogs/state/agent-state [/var/log/syslog] file = /var/log/syslog log_group_name = /var/log/syslog log_stream_name = {instance_id} datetime_format = %b %d %H:%M:%S

配置您的 IAM 角色

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 PoliciesCreate Policy

  3. Create Policy 页面上,对于 Create Your Own Policy,选择 Select。有关创建自定义策略的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon EC2 的 IAM 策略

  4. Review Policy 页面上,为 Policy Name 键入策略的名称。

  5. 对于 Policy Document,粘贴以下策略:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws-cn:logs:*:*:*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws-cn:s3:::myawsbucket/*" ] } ] }
  6. 选择 Create Policy

  7. 在导航窗格中,选择 RolesCreate New Role

  8. Set Role Name 页面上,请键入角色名称,然后选择 Next Step

  9. Select Role Type 页面上,选择 Amazon EC2 旁的 Select

  10. Attach Policy 页面上的表标题中,依次选择 Policy TypeCustomer Managed

  11. 选择您创建的 IAM 策略,然后选择下一步

  12. 选择 Create Role

    有关 IAM 用户和策略的更多信息,请参阅 IAM 用户指南 中的 IAM 用户和组管理 IAM 策略

启动新实例和启用 CloudWatch Logs

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择 Launch Instance

    有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的启动实例

  3. Step 1: Choose an Amazon Machine Image (AMI) 页面上,选择要启动的 Linux 实例类型,然后在 Step 2: Choose an Instance Type 页面上,选择 Next: Configure Instance Details

    确保 Amazon 系统映像 (AMI) 中包含了 cloud-init。Amazon Linux AMI 和适用于 Ubuntu 和 RHEL 的 AMI 已包含 cloud-init,但 AWS Marketplace 中的 CentOS 和其他 AMI 可能未包含。

  4. 步骤 3: 配置实例详细信息页面上,为 IAM 角色选择您创建的 IAM 角色。

  5. Advanced Details 下,将以下脚本粘贴到 User data 的框中。然后,通过将 -c 选项的值更改为您的代理配置文件的位置来更新该脚本:

    #!/bin/bash curl https://s3.amazonaws.com.cn//aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O chmod +x ./awslogs-agent-setup.py ./awslogs-agent-setup.py -n -r us-east-1 -c s3://myawsbucket/my-config-file
  6. 对实例进行任何其他更改,检查启动设置,然后选择 Launch

  7. 在代理运行一段时间后,可以在 CloudWatch 控制台看到新创建的日志组和日志流。

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