

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

# 将 AWS Elemental MediaTailor 日志直接写入 Amazon CloudWatch 日志
<a name="monitoring-cw-logs"></a>

MediaTailor 生成包含会话活动和广告决策服务器交互详细信息的日志，并将其写入 Amazon CloudWatch。这些日志按顺序描述了会话期间发生的活动。

MediaTailor 还可以使用已售日志，以灵活地交付日志和批量 discount 定价。有关已售日志的信息，请参阅[使用已售日志](vended-logs.md)。

**Topics**
+ [Amazon CloudWatch 日志的权限](monitoring-permissions.md)
+ [AWS Elemental MediaTailor 频道组装的 “As Run” 日志](as-run-log.md)
+ [AWS Elemental MediaTailor Amazon 日志见解中的 ADS CloudWatch 日志分析](monitor-cloudwatch-ads-logs.md)

# Amazon CloudWatch 日志的权限
<a name="monitoring-permissions"></a>

使用 AWS Identity and Access Management (IAM) 创建授予亚马逊 AWS Elemental MediaTailor 访问权限的角色 CloudWatch。您必须执行以下步骤才能为您的账户发布 CloudWatch 日志。 CloudWatch 自动发布您账户的指标。

**允许 MediaTailor 访问 CloudWatch**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在 IAM 控制台的导航窗格中，选择**角色**，然后选择**创建角色**。

1. 选择**其他 AWS 账户**角色类型。

1. 在**账户 ID** 中，输入您的 AWS 账户 ID。

1. 选择 **Require external ID (需要外部 ID)** 并输入 **Midas**。此选项会在信任策略中自动添加一个条件，即仅当请求包含正确的 `sts:ExternalId` 时，该服务才代入该角色。

1. 选择**下一步: 权限**。

1. 添加指定此角色可完成的操作的权限策略。从以下选项中选择一项，然后选择 **Next: Review (下一步: 审核)**：
   + **CloudWatchLogsFullAccess**提供对 Amazon CloudWatch 日志的完全访问权限
   + **CloudWatchFullAccess**提供对 Amazon 的完全访问权限 CloudWatch

1. 对于**角色名称**，输入 **MediaTailorLogger**，然后选择**创建角色**。

1. 在 **Roles (角色)** 页面上，选择您刚刚创建的角色。

1. 要更新委托人，请编辑信任关系：

   1. 在角色的 **Summary (摘要)** 页上，选择 **Trust relationship (信任关系)** 选项卡。

   1. 选择**编辑信任关系**。

   1. 在策略文档中，将委托人更改为 MediaTailor 服务。它应如下所示：

      ```
      "Principal": {
         "Service": "mediatailor.amazonaws.com"
      },
      ```

      整个策略的内容现在应如下所示：

   1. 选择**更新信任策略**。

# AWS Elemental MediaTailor 频道组装的 “As Run” 日志
<a name="as-run-log"></a>

日志组中的 A *s Run* CloudWatch `MediaTailor/Channel/AsRunLog` 日志在播放时显示有关节目和广告时段的信息。

创建频道时，默认情况下，As Run 日志处于禁用状态。使用控制台或 AWS Command Line Interface (AWS CLI)，您可以为账户中的每个频道启用和禁用 As Run 日志状态。

启用 As Run 日志后， MediaTailor 会自动创建一个服务相关角色， MediaTailor 允许在您的日志账户中写入和管理 As Run CloudWatch 日志。有关服务关联角色的更多信息，请参阅[将服务相关角色用于 MediaTailor](using-service-linked-roles.md)。

**注意**  
As Run Log 目前仅支持默认程序。目前，它不支持由程序规则创建的 AlternateMedia。这意味着它目前不为 AlternateMedia 生成 As Run 日志。

**Topics**
+ [启用 As Run 日志](enabling-as-run-log.md)
+ [禁用 As Run 日志](disabling-as-run-log.md)

# 启用 As Run 日志
<a name="enabling-as-run-log"></a>

要启用 As Run 日志，请指定频道名称并为该频道启用 A *s Run* 日志类型。

------
#### [ Console ]

**在创建频道时启用 As Run 日志**

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

1. 在导航窗格中，选择**频道集合** > **频道**。

1. 在导航栏上，选择**创建频道**。

1. 在 “**设置频道详细信息**”、**“配置输出**” 和 “**访问控制**” 窗格中，根据需要配置您的频道。

1. 在 “**访问控制**” 窗格中，选择 “**下一步**”。

1. 在 “**日志记录**” 窗格的 “**日志类型**” 下，选择 “**启用为运行**” 以启用 As Run 日志。

**在更新频道时启用 As Run 日志**
**注意**  
如果该频道当前正在运行，则必须先停止该频道，然后才能对其进行更新。停止频道后，您可以选择 “**操作****” > “编辑”** 开始更新频道。

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

1. 在导航窗格中，选择**频道集合** > **频道**。

1. 选择要更新的频道以启用 As Run 日志。

1. 选择**操作** > **编辑**。

1. 在 “**设置频道详情**”、**“配置输出**” 和 “**访问控制**” 窗格中，根据需要更新频道配置。

1. 在 “**访问控制**” 窗格中，选择 “**下一步**”。

1. 在 “**日志记录**” 窗格的 “**日志类型**” 下，选择 “**启用为运行**” 以启用 As Run 日志。

**从 “**记录**” 选项卡中启用 As Run 日志**
**注意**  
如果频道当前正在运行，则必须使用 “**记录**” 选项卡，而不是选择 “**操作**” > “**编辑**” 来启用 As Run 日志。

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

1. 在导航窗格中，选择**频道集合** > **频道**。

1. 选择要为其启用 As Run 日志的频道。

1. 在频道名称下方的导航栏中，选择 Lo **gging**。

1. **在 “日志” > “**日志类型**” 下，选择 “**当运行**” 以启用 As Run 日志。**

------
#### [ AWS Command Line Interface (AWS CLI) ]

**启用 As Run 日志**

运行[configure-logs-for-channel](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-channel.html)命令并为所需参数指定适当的值。

此示例是针对 Linux、macOS 或 Unix 进行格式化的，它使用反斜杠（\$1）行继续符来提高可读性。

```
$ aws mediatailor configure-logs-for-channel \
--channel-name MyChannel \
--log-types AS_RUN
```

此示例是针对 Microsoft Windows 进行格式化的，它使用尖号 (^) 行继续符来提高可读性。

```
C:\> aws mediatailor configure-logs-for-channel ^
--channel-name MyChannel ^
--log-types AS_RUN
```

其中：
+ `MyChannel`是您拥有并要为其启用 As Run 日志的频道的名称。

如果命令成功运行，则您将收到类似于以下内容的输出：

```
{
    "ChannelName": "MyChannel",
    "LogTypes": [
       "AS_RUN"
    ]
}
```

------

# 禁用 As Run 日志
<a name="disabling-as-run-log"></a>

要为启用了 As Run 日志的频道禁用 As Run 日志，请指定频道名称并禁用该频道的 A *s Run* 日志类型。

------
#### [ Console ]

**在更新频道时禁用 As Run 日志**
**注意**  
如果该频道当前正在运行，则必须先停止该频道，然后才能对其进行更新。停止频道后，您可以选择 “**操作****” > “编辑”** 开始更新频道。

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

1. 在导航窗格中，选择**频道集合** > **频道**。

1. 选择要更新的频道以启用 As Run 日志。

1. 选择**操作** > **编辑**。

1. 在 “**设置频道详情**”、**“配置输出**” 和 “**访问控制**” 窗格中，根据需要更新频道配置。

1. 在 “**访问控制**” 窗格中，选择 “**下一步**”。

1. 在 “**日志记录**” 窗格的 “**日志类型**” 下，清除 “**启用为运行**” 以禁用 As Run 日志。

**从 “**记录**” 选项卡中禁用 As Run 日志**
**注意**  
如果频道当前正在运行，则必须使用 “**记录**” 选项卡，而不是选择 “**操作**” > “**编辑**” 来禁用 As Run 日志。

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

1. 在导航窗格中，选择**频道集合** > **频道**。

1. 选择要禁用 As Run 日志的频道。

1. 在频道名称下方的导航栏中，选择 Lo **gging**。

1. **在 “日志” > “**日志类型**” 下，清除 **As run** 以禁用 As Run 日志。**

------
#### [ AWS Command Line Interface (AWS CLI) ]

**禁用 As Run 日志**

运行[configure-logs-for-channel](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-channel.html)命令并为所需参数指定适当的值。

此示例是针对 Linux、macOS 或 Unix 进行格式化的，它使用反斜杠（\$1）行继续符来提高可读性。

```
$ aws mediatailor configure-logs-for-channel \
--channel-name MyChannel \
--log-types
```

此示例是针对 Microsoft Windows 进行格式化的，它使用尖号 (^) 行继续符来提高可读性。

```
C:\> aws mediatailor configure-logs-for-channel ^
--channel-name MyChannel ^
--log-types
```

其中：
+ `MyChannel`是您拥有并要禁用 As Run 日志的频道的名称。

如果命令成功运行，则您将收到类似于以下内容的输出：

```
{
    "ChannelName": "MyChannel",
    "LogTypes": []
}
```

------

# AWS Elemental MediaTailor Amazon 日志见解中的 ADS CloudWatch 日志分析
<a name="monitor-cloudwatch-ads-logs"></a>

您可以使用 Amazon Logs Insights 查看和查询 AWS Elemental MediaTailor 广告决策服务器 (ADS) CloudWatch 日志。 MediaTailor 将事件日志发送到， CloudWatch 用于正常处理和错误情况。日志遵循 JSON 架构。通过 CloudWatch Logs Insights，您可以按时间范围选择日志，然后对其进行查询。

有关一般信息，请参阅[使用日志见解分析 CloudWatch 日志数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)。

**注意**  
要访问日志，您需要访问Amazon的权限 CloudWatch。有关说明，请参阅[Amazon CloudWatch 日志的权限](monitoring-permissions.md)。

**使用 CloudWatch 控制台查看和查询 ADS 日志**

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

1. 在导航窗格中的 **Logs (日志)** 下，选择 **Insights (见解)**。

1. 在搜索栏中输入**AdDec**，然后从下拉列表中选择`MediaTailor/AdDecisionServerInteractions`。

1. （可选）调整要研究的时间段。

1. （可选）更改对话框中的查询。有关一般指导，请参阅[CloudWatch 日志见解查询语法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)。有关 MediaTailor ADS 的查询的示例，请参阅 [查询 ADS 日志](querying-the-ads-logs.md)。

1. 选择**运行查询**。该查询可能需要几秒钟时间，在此期间，将显示 **Cancel (取消)** 来代替 **Run query (运行查询)**。

1. （可选）要将结果导出为 CSV 文件，请选择 **Actions (操作)**，然后选择 **Download query results (CSV) (下载查询结果(CSV))**。

**注意**  
控制台限制了它在查询结果中返回和导出的记录数量，因此对于批量数据，请使用 API、 AWS Command Line Interface (AWS CLI) 或 SDK。

**Topics**
+ [查询 ADS 日志](querying-the-ads-logs.md)

# 查询 ADS 日志
<a name="querying-the-ads-logs"></a>

CloudWatch Logs Insights 提供了一组丰富的查询日志的选项。有关查询语法的详细信息，请参阅[CloudWatch 日志见解查询语法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)。此部分提供了一些常见查询示例来帮助您开始使用 ADS 日志查询。所有查询都针对当前时间范围设置的日志运行。

以下查询从 ADS 日志中检索所有信息。

```
fields @timestamp, eventType, sessionId, requestId, @message
| sort sessionId, @timestamp asc
```

以下查询检索对 ADS 的所有请求。此查询显示了一种检索 MediaTailor 日志请求标头内容的方法。

```
fields @timestamp, adsRequestUrl, requestHeaders.0.value as @userAgent, requestHeaders.1.value as @xForwardedFor, sessionId, requestId
| filter eventType = "MAKING_ADS_REQUEST"
| sort @timestamp asc
```

以下查询检索为给定会话 MediaTailor 插入的广告。

```
fields @timestamp, sessionId, requestId, @message
| filter eventType = "FILLED_AVAIL"
| sort @timestamp asc
```

以下查询检索代表玩家 MediaTailor 调 URLs 用的跟踪。

```
fields @timestamp, beaconInfo.trackingEvent, beaconInfo.beaconUri, beaconInfo.headers.0.value as @userAgent, beaconInfo.headers.1.value as @xForwardedFor, sessionId, requestId
| filter eventType = "BEACON_FIRED"
| sort @timestamp asc
```

以下查询通过按 `sessionId` 筛选结果来检索特定播放会话的信息。

```
fields @timestamp, eventType, sessionId, requestId, @message
| filter sessionId = "0aaf6507-c6f9-4884-bfe7-f2f841cb8195"
| sort @timestamp asc
```

以下查询通过按 `requestId` 筛选结果来检索单个请求的信息。

```
fields @timestamp, eventType, sessionId, requestId, @message
| filter requestId = "f5d3cf39-6258-4cf1-b3f6-a34ff8bf641d"
| sort @timestamp asc
```

以下查询检索记录的每种事件类型的日志条目计数。

```
fields eventType
| stats count() as @eventCount by eventType
```

以下查询检索已跳过广告的所有效用的效用 ID 和已跳过广告列表。

```
fields avail.availId
| parse @message '"skippedAds":[*]' as @skippedAdsList
| filter ispresent(@skippedAdsList)
```