系统日志转发服务器 - AWS IoT Greengrass

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

系统日志转发服务器

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

重要

此组件仅转发运行时生成的 systemd-journald 日志。有关 systemd-journald 日志的更多信息,请参阅 systemd-journaldjournalctl

注意

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

版本

此组件具有以下版本:

  • 2.1.x

  • 2.0.x

Type

组件是一个通用组件 (aws.greengrass.generic)。Greengrass Nucleus 运行组件的生命周期脚本。

有关更多信息,请参阅组件类型

操作系统

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

要求

此组件具有以下要求:

该组件需要访问权限才能在中创建日志和流组, 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 页面。

端点和端口

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

终端节点 端口 必需 描述

logs.region.amazonaws.com

443

如果将日志写入日 CloudWatch 志,则为必填项。

依赖项

部署组件时, AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求,才能成功部署组件。本部分列出了此组件的已发布版本的依赖关系,以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 AWS IoT Greengrass 控制台中查看每个组件版本的依赖关系。在组件详细信息页面上,查找依赖关系列表。

2.1.x

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

依赖关系 兼容版本 依赖关系类型
令牌交换服务 >=2.0.0 硬性
Greengrass Nucleus Lite >=2.3.0 软性
2.0.x

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

依赖关系 兼容版本 依赖关系类型
令牌交换服务 >=2.0.0 硬性

配置

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

2.0.x-2.1.x
maxUploadIntervalSec

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

maxRetriesCount

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

bufferCapacity

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

logGroup

中的登录路径 CloudWatch。

logStream

CloudWatch 日志流。

filters

核心设备筛选器配置地图。

services

服务名筛选器列表,系统日志转发服务器将使用该列表来确定上传哪些日志。只有当日志来源的服务至少与该列表中的一个筛选器匹配时,才会上传日志。此列表中的筛选器可以是服务名称必须与之完全匹配的字符串,也可以是以 * 结尾的字符串,这意味着其前缀必须匹配。

默认值:[ggl.*]

重要

只有当日志来源的服务至少与该列表中的一个筛选器匹配时,才会上传日志。

注意

使用值“*”将包括所有可用的服务。

例 示例配置:

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

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

更改日志

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

版本

更改

2.1.0

错误修复和改进
  • 更新组件配方以正确支持 Greengrass 核。

  • 改进了没有要上传的日志时的日志输出。

  • 常规错误修复和性能改进。

2.0.1

错误修复和改进

更新了组件配方,为 aarch64 (arm64) 系统提供了恰当支持。

2.0.0

初始版本。