

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

# 系统日志转发服务器
<a name="system-log-forwarder-component"></a>

系统日志转发器 (`aws.greengrass.SystemLogForwarder`) CloudWatch 使用 CloudWatch HTTPS API 将活动系统日志直接上传到亚马逊。

**重要**  
此组件仅转发运行时生成的 systemd-journald 日志。有关 systemd-journald 日志的更多信息，请参阅 [systemd-journald](https://www.freedesktop.org/software/systemd/man/latest/systemd-journald.service.html) 和 [journalctl](https://www.freedesktop.org/software/systemd/man/latest/journalctl.html#)。

**注意**  
此组件需要特定的权限才能创建和管理 CloudWatch 日志组和流。

**Topics**
+ [版本](#system-log-forwarder-component-versions)
+ [Type](#system-log-forwarder-component-type)
+ [操作系统](#system-log-forwarder-component-os-support)
+ [要求](#system-log-forwarder-component-requirements)
+ [端点和端口](#system-log-forwarder-component-endpoints)
+ [依赖项](#system-log-forwarder-component-dependencies)
+ [配置](#system-log-forwarder-component-configuration)
+ [更改日志](#system-log-forwarder-component-changelog)

## 版本
<a name="system-log-forwarder-component-versions"></a>

此组件具有以下版本：
+ 2.1.x
+ 2.0.x

## Type
<a name="system-log-forwarder-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>组件是一个通用组件 (`aws.greengrass.generic`)。[Greengrass Nucleus](greengrass-nucleus-component.md) 运行组件的生命周期脚本。

<a name="public-component-type-more-information"></a>有关更多信息，请参阅[组件类型](develop-greengrass-components.md#component-types)。

## 操作系统
<a name="system-log-forwarder-component-os-support"></a>

该组件必须安装在基于 systemd 的 Linux 系统上。

## 要求
<a name="system-log-forwarder-component-requirements"></a>

此组件具有以下要求：

该组件需要访问权限才能在中创建日志和流组， CloudWatch 以及执行 PutLogEvents HTTP 调用的权限。至少须在 Greengrass 设备的角色别名中添加以下策略权限：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
      "Effect": "Allow",
      "Action": ["logs:CreateLogGroup"],
      "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:greengrass/systemLogs:*"
    },
    {
      "Effect": "Allow",
      "Action": ["logs:CreateLogStream", "logs:PutLogEvents"],
      "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:greengrass/systemLogs:log-stream:${credentials-iot:ThingName}"
    }
  ]
}
```

------

**注意**  
有关更多信息，请参阅系统日志转发服务器的 [Github](https://github.com/aws-greengrass/aws-greengrass-system-log-forwarder) 页面。

## 端点和端口
<a name="system-log-forwarder-component-endpoints"></a>

除基本操作所需的端点和端口外，此组件还必须能够对以下端点和端口执行出站请求。有关更多信息，请参阅 [允许设备流量通过代理或防火墙](allow-device-traffic.md)。


| 端点 | 端口 | 必需 | 说明 | 
| --- | --- | --- | --- | 
|  `logs.region.amazonaws.com`  | 443 | 否 |  如果将日志写入日 CloudWatch 志，则为必填项。  | 

## 依赖项
<a name="system-log-forwarder-component-dependencies"></a>

部署组件时， AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求，才能成功部署组件。本部分列出了此组件的[已发布版本](#system-log-forwarder-component-changelog)的依赖关系，以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 [AWS IoT Greengrass 控制台](https://console.aws.amazon.com//greengrass)中查看每个组件版本的依赖关系。在组件详细信息页面上，查找**依赖关系**列表。

------
#### [ 2.1.x ]

下表列出了此组件版本 2.1.x 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [令牌交换服务](token-exchange-service-component.md) | >=2.0.0 | 硬性 | 
| [Greengrass Nucleus Lite](greengrass-nucleus-lite-component.md) | >=2.3.0 | 软性 | 

------
#### [ 2.0.x ]

下表列出了此组件的版本 2.0.x 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [令牌交换服务](token-exchange-service-component.md) | >=2.0.0 | 硬性 | 

------

## 配置
<a name="system-log-forwarder-component-configuration"></a>

此组件提供您可以在部署组件时自定义的以下配置参数。

------
#### [ 2.0.x-2.1.x ]

`maxUploadIntervalSec`  
系统日志转发服务器尝试上传日志的最大时限。由于日志转发服务器会在内存填满时上传日志，因此其上传频率仍可能超过配置的最大频率。

`maxRetriesCount`  
系统日志转发服务器尝试重新尝试瞬时 HTTP 错误的次数。

`bufferCapacity`  
内存中日志存储环形缓冲区的大小。

`logGroup`  
中的登录路径 CloudWatch。

`logStream`  
 CloudWatch 日志流。

`filters`  
核心设备筛选器配置地图。    
`services`  
服务名筛选器列表，系统日志转发服务器将使用该列表来确定上传哪些日志。只有当日志来源的服务至少与该列表中的一个筛选器匹配时，才会上传日志。此列表中的筛选器可以是服务名称必须与之完全匹配的字符串，也可以是以 \$1 结尾的字符串，这意味着其前缀必须匹配。  
默认值：`[ggl.*]`  
只有当日志来源的服务至少与该列表中的一个筛选器匹配时，才会上传日志。
使用值“\$1”将包括所有可用的服务。

**Example 示例配置：**  
以下示例将按照 Greengrass Nucleus Lite 中包含的所有服务来筛选日志。  

```
{
    "maxUploadIntervalSec": 300,
    "maxRetriesCount": 3,
    "bufferCapacity": 1048576,
    "logGroup": "greengrass/systemLogs",
    "logStream": "deviceName",
    "filters": {
        "services": ["ggl.*"]
    }
}
```

------

## 更改日志
<a name="system-log-forwarder-component-changelog"></a>

下表介绍每个组件版本的更改。


|  **版本**  |  **更改**  | 
| --- | --- | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/system-log-forwarder-component.html)  | 
|  2.0.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/system-log-forwarder-component.html)  | 
|  2.0.0  |  初始版本。  | 