

经过仔细考虑，我们决定停用适用于 SQL 应用程序的 Amazon Kinesis Data Analytics：

1. 从 **2025年9月1日起，**我们将不再为适用于SQL应用程序的Amazon Kinesis Data Analytics Data Analytics提供任何错误修复，因为鉴于即将停产，我们对其的支持将有限。

2. 从 **2025 年 10 月 15 日**起，您将无法为 SQL 应用程序创建新的 Kinesis Data Analytics。

3. 从 **2026 年 1 月 27 日**起，我们将删除您的应用程序。您将无法启动或操作 Amazon Kinesis Data Analytics for SQL 应用程序。从那时起，将不再提供对 Amazon Kinesis Data Analytics for SQL 的支持。有关更多信息，请参阅 [Amazon Kinesis Data Analytics for SQL 应用程序停用](discontinuation.md)。

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

# 监控 for SQL 应用程序
<a name="monitoring-overview"></a>

要保持 和 应用程序的可靠性、可用性和性能，监控是一个重要环节。您应该从 AWS 解决方案的所有部分收集监控数据，以便在出现多点故障时可以更轻松地进行调试。不过，在开始监控 之前，您应制定一个监控计划并在计划中回答下列问题：
+ 监控目的是什么？
+ 您将监控哪些资源？
+ 监控这些资源的频率如何？
+ 您将使用哪些监控工具？
+ 谁负责执行监控任务？
+ 出现错误时应通知谁？

下一步，通过在不同时间和不同负载条件下测量性能，在您的环境中建立正常 性能的基准。在监控 时，您可以存储历史监控数据。如果您这样做，则可以将历史监控数据与当前性能数据进行比较，确定性能的正常模式和性能异常，并找出解决问题的方法。

通过使用 ，您可以监控应用程序。该应用程序处理数据流（输入或输出），这两个数据流都包含*标识符，您可以使用这些标识符*来缩小对 CloudWatch 日志的搜索范围。有关 如何处理数据流的信息，请参阅 [Amazon Kinesis Data Analytics for SQL 应用程序：工作原理](how-it-works.md)。

最重要的指标是 `millisBehindLatest`，表示应用程序读取流式传输源的滞后程度。通常情况下，滞后时间应当为零或接近零毫秒。通常会出现短暂峰值，`millisBehindLatest` 中会出现增长。

我们建议您设置一个 CloudWatch 警报，当应用程序在读取直播源时延迟超过一个小时时触发该警报。对于某些几乎要求实时处理的使用情况（例如，将已处理的数据发送到实时应用程序），您可以选择将警报设置为更低值，如 5 分钟。

**Topics**
+ [监控工具](monitoring-automated-manual.md)
+ [使用 Amazon 进行监控 CloudWatch](monitoring-cloudwatch.md)
+ [使用 记录 AWS CloudTrail API 调用](logging-using-cloudtrail.md)

# 监控工具
<a name="monitoring-automated-manual"></a>

AWS 提供了各种可用于监控的工具。您可以配置其中的一些工具来为您执行监控任务，但有些工具需要手动干预。建议您尽可能实现监控任务自动化。

## 自动监控工具
<a name="monitoring-automated-tools"></a>

您可以使用以下自动化监控工具来监控 并在出现错误时报告：
+ **A CloudWatch mazon** Alarms — 在您指定的时间段内观察单个指标，并根据该指标在多个时间段内相对于给定阈值的值执行一项或多项操作。该操作是发送到亚马逊简单通知服务 (Amazon SNS) Simple Notification Scaling 主题或亚马逊 EC2 Auto Scaling 策略的通知。 CloudWatch 警报不会仅仅因为它们处于特定状态就调用操作；该状态必须已更改并保持了指定的时间段。有关更多信息，请参阅 [使用 Amazon 进行监控 CloudWatch](monitoring-cloudwatch.md)。
+ **Amazon CloudWatch Logs** — 监控、存储和访问来自 AWS CloudTrail 或其他来源的日志文件。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[监控日志文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)。
+ **Amazon CloudWatch ** Events — 匹配事件并将其路由到一个或多个目标函数或流，以进行更改、捕获状态信息并采取纠正措施。有关更多信息，请参阅《[亚马逊* CloudWatch 用户指南》中的什么是亚马逊 CloudWatch *活动](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchEvents.html)。
+ **AWS CloudTrail 日志监控**-在账户之间共享日志文件，通过将 CloudTrail 日志文件发送到 “日志” 来实时监控CloudWatch 日志文件，用 Java 编写日志处理应用程序，并验证您的日志文件在传送后是否未更改 CloudTrail。有关更多信息，请参阅《*AWS CloudTrail 用户指南》中的 “使用CloudTrail *[日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html)”。

## 手动监控工具
<a name="monitoring-manual-tools"></a>

监控的另一个重要部分是手动监控 CloudWatch 警报未涵盖的项目。、 CloudWatch Trusted Advisor、和其他 AWS 管理控制台 仪表板提供了 AWS 环境状态的 at-a-glance视图。
+  CloudWatch 主页显示以下内容：
  + 当前告警和状态
  + 告警和资源图表
  + 服务运行状况

  此外，您还可以使用 CloudWatch 执行以下操作：
  + 创建[自定义控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CloudWatch_Dashboards.html)以监控您关心的服务
  + 绘制指标数据图，以排除问题并弄清楚趋势
  + 搜索并浏览您的所有指标
  + 创建和编辑告警以接收问题通知
+ AWS Trusted Advisor 可以帮助您监控以提高性能、可靠性、安全性和成本效益。所有用户可以使用 4 项 Trusted Advisor 检查。具有商业或企业支持计划的用户可以使用超过 50 个检查。有关更多信息，请参阅 [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/trustedadvisor/)。

# 使用 Amazon 进行监控 CloudWatch
<a name="monitoring-cloudwatch"></a>

您可以使用 Amazon 监控应用程序 CloudWatch。 CloudWatch 收集原始数据并将其处理为可读的、近乎实时的指标。这些统计数据会保存两周。这样您能够访问历史信息，并能够更好地了解您的 Web 应用程序或服务的执行情况。默认情况下，指标数据会自动发送到 CloudWatch。有关更多信息，请参阅[什么是亚马逊 CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html) 在《*亚马逊 CloudWatch 用户指南》*中。

**Topics**
+ [指标与维度](monitoring-metrics.md)
+ [查看 指标和维度](metrics-dimensions.md)
+ [创建要监控的 CloudWatch 警报](creating-alarms.md)
+ [使用 Amazon CloudWatch 日志](cloudwatch-logs.md)

# 指标与维度
<a name="monitoring-metrics"></a>

`AWS/KinesisAnalytics` 命名空间包括以下指标。


| 指标 | 说明 | 
| --- | --- | 
|  `Bytes` | 读取（每个输入流）或写入（每个输出流）的字节数。 级别：每个输入流和每个输出流  | 
|  `KPUs` | 用于运行您的流式处理应用程序的 Kinesis 处理单元数量。每小时的平均 KPUs 使用量决定了您的应用程序的账单。 级别：应用程序级  | 
|  `MillisBehindLatest` |  表示应用程序读取流式源的时间相对于当前时间的延迟。 级别：应用程序级  | 
|  `Records` | 读取（每个输入流）或写入（每个输出流）的记录数。 级别：每个输入流和每个输出流  | 
|  `Success` | 1 表示到为您的应用程序配置的目的地的每个成功交付尝试；0 表示每个失败交付尝试。该指标的平均值表示执行了多少成功的交付。 级别：按目的地。  | 
|  `InputProcessing.Duration` |  执行的每次 AWS Lambda 函数调用所花费的时间。 级别：每个输入流  | 
|  `InputProcessing.OkRecords ` |  Lambda 函数返回的标有 `Ok` 状态的记录的数量。 级别：每个输入流  | 
|  `InputProcessing.OkBytes ` |  Lambda 函数返回的标有 `Ok` 状态的记录的字节总数。 级别：每个输入流  | 
|  `InputProcessing.DroppedRecords ` |  Lambda 函数返回的标有 `Dropped` 状态的记录的数量。 级别：每个输入流  | 
|  `InputProcessing.ProcessingFailedRecords ` |  Lambda 函数返回的标有 `ProcessingFailed` 状态的记录的数量。 级别：每个输入流  | 
|  `InputProcessing.Success` |  执行的成功 Lambda 调用的数量。 级别：每个输入流  | 
|  `LambdaDelivery.OkRecords` |  Lambda 函数返回的标有 `Ok` 状态的记录的数量。 级别：按 Lambda 目的地 | 
|  `LambdaDelivery.DeliveryFailedRecords` |  Lambda 函数返回的标有 `DeliveryFailed` 状态的记录的数量。 级别：按 Lambda 目的地 | 
|  `LambdaDelivery.Duration` |  为 所执行的每个 Lambda 函数调用花费的时间。 级别：按 Lambda 目的地 | 

 为以下维度提供指标。


| 维度 | 说明 | 
| --- | --- | 
|  `Flow`  |  每个输入流：输入  每个输出流：输出  | 
|  `Id`  |  每个输入流：输入 ID 每个输出流：输出 ID  | 

# 查看 指标和维度
<a name="metrics-dimensions"></a>

当您的应用程序处理数据流时，会将以下指标和维度发送到 CloudWatch。您可以使用以下流程查看 的指标

在控制台中，指标的分组首先依据服务命名空间，然后依据每个命名空间内的各种维度组合。

**使用 CloudWatch 控制台查看指标**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择**指标**。

1. 在的 “**按类别划分的CloudWatch 指标**” 窗格中，选择一个指标类别。

1. 在上方窗格中，滚动以查看完整指标列表。

**要查看指标，请使用 AWS CLI**
+ 在命令提示符处，使用以下命令。

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/KinesisAnalytics" --region region
  ```

 指标是在以下级别收集的：
+ 应用程序 
+ 输入流
+ 输出流

# 创建要监控的 CloudWatch 警报
<a name="creating-alarms"></a>

您可以创建一个 Amazon CloudWatch 警报，当警报状态发生变化时，该警报会发送 Amazon SNS 消息。警报会在您规定的时间范围内监控某一项指标。它在多个时间段内根据相对于给定阈值的指标值，执行一项或多项操作。操作是一个发送到 Amazon SNS 主题或 Auto Scaling 策略的通知。

告警仅为持续状态更改调用操作。要使 CloudWatch 警报调用操作，状态必须已更改并维持了指定的时间。

您可以使用 AWS 管理控制台、 CloudWatch AWS CLI或 CloudWatch API 设置警报，如下所述。

**使用 CloudWatch 控制台设置警报**

1. 登录 AWS 管理控制台 并打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1.  选择**创建警报**。**Create Alarm Wizard (创建警报向导)** 启动。

1. 选择 **Kinesis Analytics Metrics (Kinesis Analytics 指标)**。然后，滚动 指标找到您想要设置报警器的指标的位置。

   要仅显示 指标，请搜索文件系统的文件系统 ID。选择要为其创建警报的指标，然后选择 **Next (下一步)**。

1. 输入指标的 **Name (名称)**、**Description (描述)** 和 **Whenever (每当)** 值。

1. 如果 CloudWatch 要在达到警报状态时向您发送电子邮件，请在 “**每当此警报：**” 字段中，选择 “**状态为警报**”。在 **Send notification to (发送通知到)** 字段中，选择一个现有 SNS 主题。如果您选择**创建主题**，那么您就可以为新电子邮件订阅列表设置名称和电子邮件地址。此列表将保存下来并会在将来的警报字段中显示出来。
**注意**  
 如果您使用 **Create topic (创建主题)** 创建一个新 Amazon SNS 主题，那么电子邮件地址在接收通知之前必须通过验证。当警报进入警报状态时，才会发送电子邮件。如果在验证电子邮件地址之前警报状态发生了变化，那么它们不会接收到通知。

1. 在 **Alarm Preview** 部分中，预览您即将创建的警报。

1. 选择 **Create Alarm** 以创建警报。

**使用 CloudWatch CLI 设置警报**
+  调用 `[mon-put-metric-alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/cli/cli-mon-put-metric-alarm.html)`。有关更多信息，请参阅 [Amazon CloudWatch CLI 参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/cli/)。

**使用 CloudWatch API 设置警报**
+ 调用 `[PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html)`。有关更多信息，请参阅 [Amazon CloudWatch API 参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/)。

# 使用 Amazon CloudWatch 日志
<a name="cloudwatch-logs"></a>

如果未正确配置 应用程序，它可能会在应用程序启动期间转变为运行状态。或者它可以更新，但不会处理进入应用程序内部输入流的任何数据。通过向应用程序添加 CloudWatch 日志选项，您可以监控应用程序配置问题。

 可能会在以下情况下产生配置错误：
+ 用于输入的 Kinesis 数据流不存在。
+ 用于输入的 Amazon Data Firehose 传输流不存在。
+ 用作引用数据源的 Amazon S3 存储桶不存在。
+ S3 存储桶的引用数据源中的指定文件不存在。
+ 管理相关权限的 AWS Identity and Access Management (IAM) 角色中未定义正确的资源。
+ 管理相关权限的 IAM 角色中未定义正确权限。
+  无权担任管理相关权限的 IAM 角色。

有关亚马逊的更多信息 CloudWatch，请参阅[https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)。

## 添加 PutLogEvents 策略操作
<a name="enable_putlogevents"></a>

 需要权限才能将错误配置错误写入。 CloudWatch您可以将这些权限添加到 担任的 IAM 角色中，如下所述。有关将 IAM 角色用于 的更多信息，请参阅 [Kinesis Data Analytics 中的身份和访问管理](iam-role.md)。

### 信任策略
<a name="enable_putlogevents_trust_policy"></a>

要为 授予权限以担任 IAM 角色，您可以将以下信任策略附加到该角色。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "kinesisanalytics.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

### 权限策略
<a name="enable_putlogevents_permissions_policy"></a>

要向应用程序授予 CloudWatch 从资源写入日志事件的权限，您可以使用以下 IAM 权限策略。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt0123456789000",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:log-stream:my-log-stream*"
            ]
        }
    ]
}
```

------

## 添加配置错误监控
<a name="adding_cloudwatch"></a>

使用以下 API 操作向新应用程序或现有应用程序添加 CloudWatch 日志选项或更改现有应用程序的日志选项。

**注意**  
目前，您只能使用 API 操作向应用程序添加 CloudWatch 日志选项。您无法使用控制台添加 CloudWatch 日志选项。

### 创建应用程序时添加 CloudWatch 日志选项
<a name="add_cloudwatch_create"></a>

以下代码示例演示了在创建应用程序时如何使用`CreateApplication`操作添加 CloudWatch 日志选项。有关 `Create_Application` 的更多信息，请参阅[CreateApplication](API_CreateApplication.md)。

```
{
   "ApplicationCode": "<The SQL code the new application will run on the input stream>",
   "ApplicationDescription": "<A friendly description for the new application>",
   "ApplicationName": "<The name for the new application>",
   "Inputs": [ ... ],
   "Outputs": [ ... ],
   "CloudWatchLoggingOptions": [{
      "LogStreamARN": "<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>",
      "RoleARN": "<ARN of the role to use to access the log>"
	}]
}
```

### 向现有应用程序添加 CloudWatch 日志选项
<a name="add_to_existing_app"></a>

以下代码示例说明了如何使用 `AddApplicationCloudWatchLoggingOption` 操作将 CloudWatch 日志选项添加到现有应用程序中。有关 `AddApplicationCloudWatchLoggingOption`的更多信息，请参阅[AddApplicationCloudWatchLoggingOption](API_AddApplicationCloudWatchLoggingOption.md)。

```
{
   "ApplicationName": "<Name of the application to add the log option to>",
   "CloudWatchLoggingOption": { 
      "LogStreamARN": "<ARN of the log stream to add to the application>",
      "RoleARN": "<ARN of the role to use to access the log>"
   },
   "CurrentApplicationVersionId": <Version of the application to add the log to>
}
```

### 更新现有 CloudWatch 日志选项
<a name="update_existing"></a>

以下代码示例演示如何使用`UpdateApplication`操作修改现有 CloudWatch 日志选项。有关 `UpdateApplication`的更多信息，请参阅[UpdateApplication](API_UpdateApplication.md)。

```
{
   "ApplicationName": "<Name of the application to update the log option for>",
   "ApplicationUpdate": { 
      "CloudWatchLoggingOptionUpdates": [ 
         { 
            "CloudWatchLoggingOptionId": "<ID of the logging option to modify>",
            "LogStreamARNUpdate": "<ARN of the new log stream to use>",
            "RoleARNUpdate": "<ARN of the new role to use to access the log stream>"
         }
      ],
   },
   "CurrentApplicationVersionId": <ID of the application version to modify>
}
```

### 从应用程序中删除 CloudWatch 日志选项
<a name="delete-log"></a>

以下代码示例演示如何使用`DeleteApplicationCloudWatchLoggingOption`操作删除现有 CloudWatch 日志选项。有关 `DeleteApplicationCloudWatchLoggingOption`的更多信息，请参阅[DeleteApplicationCloudWatchLoggingOption](API_DeleteApplicationCloudWatchLoggingOption.md)。

```
{
   "ApplicationName": "<Name of application to delete log option from>",
   "CloudWatchLoggingOptionId": "<ID of the application log option to delete>",
   "CurrentApplicationVersionId": <Version of the application to delete the log option from>
}
```

## 配置错误
<a name="cloudwatch_errors"></a>

以下各节详细介绍了您可能在 Amazon L CloudWatch ogs 中看到的因应用程序配置错误而出现的错误。

### 错误消息格式
<a name="cloudwatch_errors_format"></a>

由应用程序错误配置产生的错误消息将采用以下格式显示。

```
{
"applicationARN": "string",
"applicationVersionId": integer,
"messageType": "ERROR",
"message": "string",
"inputId": "string",
"referenceId": "string",
"errorCode": "string"
"messageSchemaVersion": "integer",
}
```

错误消息中的字段包含以下信息：
+ `applicationARN`：生成应用程序的 Amazon 资源名称 (ARN)，例如：`arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp`
+ `applicationVersionId`：遇到错误时的应用程序版本。有关更多信息，请参阅 [ApplicationDetail](API_ApplicationDetail.md)。
+ `messageType`：消息类型。目前，此类型只能是 `ERROR`。
+ `message`：错误的详细信息，例如：

  ```
  There is a problem related to the configuration of your input. Please check that the resource exists, the role has the correct permissions to access the resource and that Kinesis Analytics can assume the role provided.
  ```
+ `inputId`：与应用程序输入关联的 ID。仅当此输入为错误的原因时，此值才存在。如果 `referenceId` 存在，则此值不会存在。有关更多信息，请参阅 [DescribeApplication](API_DescribeApplication.md)。
+ `referenceId`：与应用程序引用数据源关联的 ID。仅当此源为错误的原因时，此值才会存在。如果 `inputId` 存在，则此值不会存在。有关更多信息，请参阅 [DescribeApplication](API_DescribeApplication.md)。
+ `errorCode`：错误的标识符。此 ID 为 `InputError` 或 `ReferenceDataError`。
+ `messageSchemaVersion`：指定最新消息架构版本的值，当前为 `1`。您可以检查此值以了解错误消息架构是否已更新。

### 错误
<a name="cloudwatch_errors_list"></a>

 CloudWatch 日志中可能出现的错误包括以下内容。

#### 资源不存在
<a name="resource_does_not_exist"></a>

如果为 Kinesis 输入流指定的 ARN 不存在，但 ARN 在语法上正确，则会产生类似于下面的错误。

```
{
"applicationARN": "arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp",
"applicationVersionId": "5",
 "messageType": "ERROR",
 "message": "There is a problem related to the configuration of your input. Please check that the resource exists, the role has the correct permissions to access the resource and that Kinesis Analytics can assume the role provided.",
 "inputId":"1.1",
 "errorCode": "InputError",
 "messageSchemaVersion": "1"
}
```

如果用于引用数据的 Amazon S3 文件键不正确，则会产生类似于下面的错误。

```
{
 "applicationARN": "arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp",
 "applicationVersionId": "5",
 "messageType": "ERROR",
 "message": "There is a problem related to the configuration of your reference data. Please check that the bucket and the file exist, the role has the correct permissions to access these resources and that Kinesis Analytics can assume the role provided.",
 "referenceId":"1.1",
 "errorCode": "ReferenceDataError",
 "messageSchemaVersion": "1"
}
```

#### 角色不存在
<a name="role_does_not_exist"></a>

如果为不存在的 IAM 输入角色指定了 ARN，但 ARN 在语法上正确，则会产生类似于下面的错误。

```
{
 "applicationARN": "arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp",
 "applicationVersionId": "5",
 "messageType": "ERROR",
 "message": "There is a problem related to the configuration of your input. Please check that the resource exists, the role has the correct permissions to access the resource and that Kinesis Analytics can assume the role provided.",
 "inputId":null,
 "errorCode": "InputError",
 "messageSchemaVersion": "1"
}
```

#### 角色无权访问资源
<a name="role_does_not_have_permissions"></a>

如果使用的输入角色无权访问输入资源（如 Kinesis 源流），则会产生类似于下面的错误。

```
{
 "applicationARN": "arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp",
 "applicationVersionId": "5",
 "messageType": "ERROR",
 "message": "There is a problem related to the configuration of your input. Please check that the resource exists, the role has the correct permissions to access the resource and that Kinesis Analytics can assume the role provided.",
 "inputId":null,
 "errorCode": "InputError",
 "messageSchemaVersion": "1"
}
```

# 使用 记录 AWS CloudTrail API 调用
<a name="logging-using-cloudtrail"></a>

 与 AWS CloudTrail一项服务集成，该服务提供用户、角色或 AWS 服务在中执行的操作的记录。 CloudTrail 将所有 API 调用捕获为事件。捕获的调用包含来自 控制台和代码的 API 操作调用。如果您创建了跟踪，则可以允许将 CloudTrail 事件持续传输到 Amazon S3 存储桶，包括的事件。如果您未配置跟踪，您仍然可以在 CloudTrail 控制台的 “事件**历史记录” 中查看最新的事件**。使用收集的信息 CloudTrail，您可以确定向哪个请求发出、发出请求的 IP 地址、谁发出了请求、何时发出请求以及其他详细信息。

要了解更多信息 CloudTrail，请参阅[AWS CloudTrail 用户指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。

## 中的信息 CloudTrail
<a name="service-name-info-in-cloudtrail"></a>

CloudTrail 在您创建 AWS 账户时已在您的账户上启用。当活动发生在中时，该活动会与其他 AWS 服务 CloudTrail 事件一起记录在**事件历史**记录中。您可以在自己的 AWS 账户中查看、搜索和下载最近发生的事件。有关更多信息，请参阅[使用事件历史记录查看 CloudTrail 事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

要持续记录您 AWS 账户中的事件，包括的事件，请创建跟踪。*跟踪*允许 CloudTrail 将日志文件传输到 Amazon S3 存储桶。默认情况下，在控制台中创建跟踪记录时，此跟踪记录应用于所有 。跟踪记录 AWS 分区中所有区域的事件，并将日志文件传送到您指定的 Amazon S3 存储桶。此外，您可以配置其他 AWS 服务，以进一步分析和处理 CloudTrail 日志中收集的事件数据。有关更多信息，请参阅下列内容：
+ [创建跟踪概述](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支持的服务和集成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [配置 Amazon SNS 通知 CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [接收来自多个区域的 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)和[接收来自多个账户的 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

所有操作均由 API 参考记录 CloudTrail 并记录在 [API 参考](/managed-flink/latest/apiv2/Welcome.html)中。例如，调用`[CreateApplication](/kinesisanalytics/latest/dev/API_CreateApplication.html)`和` [UpdateApplication](/kinesisanalytics/latest/dev/API_UpdateApplication.html)`操作会在 CloudTrail 日志文件中生成条目。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息有助于您确定以下内容：
+ 请求是使用 AWS 账户根用户 还是用户凭据发出。
+ 请求是使用角色还是联合用户的临时安全凭证发出的。
+ 请求是否由其他 AWS 服务发出。

有关更多信息，请参阅 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 了解 日志文件条目
<a name="understanding-service-name-entries"></a>

跟踪是一种配置，允许将事件作为日志文件传输到您指定的 Amazon S3 存储桶。 CloudTrail 日志文件包含一个或多个日志条目。事件代表来自任何来源的单个请求，包括有关请求的操作、操作的日期和时间、请求参数等的信息。 CloudTrail 日志文件不是公共 API 调用的有序堆栈跟踪，因此它们不会按任何特定的顺序出现。

以下示例显示了一个演示[AddApplicationCloudWatchLoggingOption](/kinesisanalytics/latest/dev/API_AddApplicationCloudWatchLoggingOption.html)和[DescribeApplication](/kinesisanalytics/latest/dev/API_DescribeApplication.html)操作的 CloudTrail 日志条目。

```
{
    "Records": [
        {
            "eventVersion": "1.05",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::012345678910:user/Alice",
                "accountId": "012345678910",
                "accessKeyId": "EXAMPLE_KEY_ID",
                "userName": "Alice"
            },
            "eventTime": "2019-03-14T01:03:00Z",
            "eventSource": "kinesisanalytics.amazonaws.com",
            "eventName": "AddApplicationCloudWatchLoggingOption",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "127.0.0.1",
            "userAgent": "aws-sdk-java/unknown-version Linux/x.xx",
            "requestParameters": {
                "currentApplicationVersionId": 1,
                "cloudWatchLoggingOption": {
                    "roleARN": "arn:aws:iam::012345678910:role/cloudtrail_test",
                    "logStreamARN": "arn:aws:logs:us-east-1:012345678910:log-group:cloudtrail-test:log-stream:sql-cloudwatch"
                },
                "applicationName": "cloudtrail-test"
            },
            "responseElements": null,
            "requestID": "e897cd34-45f4-11e9-8912-e52573a36cd9",
            "eventID": "57fe50e9-c764-47c3-a0aa-d0c271fa1cbb",
            "eventType": "AwsApiCall",
            "apiVersion": "2015-08-14",
            "recipientAccountId": "303967445486"
        },
        {
            "eventVersion": "1.05",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::012345678910:user/Alice",
                "accountId": "012345678910",
                "accessKeyId": "EXAMPLE_KEY_ID",
                "userName": "Alice"
            },
            "eventTime": "2019-03-14T05:37:20Z",
            "eventSource": "kinesisanalytics.amazonaws.com",
            "eventName": "DescribeApplication",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "127.0.0.1",
            "userAgent": "aws-sdk-java/unknown-version Linux/x.xx",
            "requestParameters": {
                "applicationName": "cloudtrail-test"
            },
            "responseElements": null,
            "requestID": "3b74eb29-461b-11e9-a645-fb677e53d147",
            "eventID": "750d0def-17b6-4c20-ba45-06d9d45e87ee",
            "eventType": "AwsApiCall",
            "apiVersion": "2015-08-14",
            "recipientAccountId": "012345678910"
        }
    ]
}
```