

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

# 快速入门：启动时在 EC2 Linux 实例上安装和配置 CloudWatch 日志代理
<a name="EC2NewInstanceCWL"></a>

**提示**  
本节中讨论的较旧 CloudWatch 的 Logs 代理即将被弃用。我们强烈建议您改用可以收集日志和指标的新统一 CloudWatch 代理。此外，较旧的 CloudWatch 日志代理需要 Python 3.3 或更早版本，默认情况下，这些版本不会安装在新的 EC2 实例上。有关统一 CloudWatch 代理的更多信息，请参阅[安装代 CloudWatch 理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)。  
本节的其余部分将介绍使用较旧的 CloudWatch Logs 代理。

## 启动时在 EC2 Linux 实例上安装较旧的 CloudWatch 日志代理
<a name="EC2NewInstanceCWL-oldagent"></a>

您可以使用 Amazon EC2 用户数据（Amazon EC2 的一项功能，允许在启动时将参数信息传递给实例）在该实例上安装和配置 CloudWatch 日志代理。要将 CloudWatch 日志代理安装和配置信息传递给 Amazon EC2，您可以在网络位置（例如 Amazon S3 存储桶）中提供配置文件。

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

**先决条件**  
创建用于描述所有日志组和日志流的代理配置文件。这是一个文本文件，描述要监控的日志文件以及要将这些文件上传到的日志组和日志流。代理使用此配置文件并开始监控并上传其中描述的所有日志文件。有关代理配置文件中的设置的更多信息，请参阅 [CloudWatch 日志代理参考](AgentReference.md)。

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

```
[general]
state_file = /var/lib/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. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择 **Policies（策略）**和**Create Policy（创建策略）**。

1. 在 **Create Policy（创建策略）**页面上，对 **Create Your Own Policy（创建您自己的策略）**选择 **Select（选择）**。有关创建自定义策略的更多信息，请参阅《*Amazon EC2 用户指南*》中的 [Amazon EC2 的 IAM 策略](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html)。

1. 在 **Review Policy（查看策略）**页面上，为 **Policy Name（策略名称）**键入策略的名称。

1. 对于 **Policy Document（策略文档）**，粘贴以下策略：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:DescribeLogStreams"
               ],
               "Resource": [
                   "arn:aws:logs:*:*:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

------

1. 选择 **Create Policy（创建策略）**。

1. 在导航窗格中，选择 **Roles（角色）**和 **Create New Role（创建新角色）**。

1. 在 **Set Role Name（设置角色名称）**页面上，请键入角色名称，然后选择 **Next Step（下一步）**。

1. 在 **Select Role Type（选择角色类型）**部分，选择 **Amazon EC2** 旁的 **Select（选择）**。

1. 在 **Attach Policy（附加策略）**页面的表标题中，依次选择 **Policy Type（策略类型）**和 **Customer Managed（客户托管）**。

1. 选择您创建的 IAM policy，然后选择 **Next Step（下一步）**。

1. 选择**创建角色**。

   有关用户和策略的更多信息，请参阅 *IAM 用户指南*中的 [IAM 用户和组](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html)以及[管理 IAM policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)。

**启动新实例并启用 CloudWatch 日志**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 选择**启动实例**。

   有关更多信息，请参阅《*Amazon EC2 用户指南*》中的[启动实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html)。

1. 在**步骤 1：选择亚马逊机器映像（AMI）**页面上，选择要启动的 Linux 实例类型，然后在**步骤 2：选择实例类型**页面上，选择**下一步：配置实例详细信息**。

   确保亚马逊机器映像（AMI）中包含了 [cloud-init](http://cloudinit.readthedocs.org/en/latest/index.html)。亚马逊 Linux AMIs 以及 AMIs 适用于 Ubuntu 和 RHEL 的 cloud-init 已经包含了 cloud-init，但是 CentOS 和其他可能不是。 AMIs AWS Marketplace 

1. 在 **Step 3: Configure Instance Details（步骤 3：配置实例详细信息）**页面上，为 **IAM role（IAM 角色）**选择您创建的 IAM 角色。

1. 在 **Advanced Details（高级详细信息）**下，将以下脚本粘贴到 **User data（用户数据）**的框中。然后，通过将 **-c** 选项的值更改为您的代理配置文件的位置来更新该脚本：

   ```
   #!/bin/bash
   curl https://s3.amazonaws.com/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://amzn-s3-demo-bucket/my-config-file
   ```

1. 对实例进行任何其他更改，检查启动设置，然后选择 **Launch（启动）**。

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

   有关更多信息，请参阅 [查看发送到日志的 CloudWatch 日志数据](Working-with-log-groups-and-streams.md#ViewingLogData)。