日志管理器 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

日志管理器

日志管理器组件 (aws.greengrass.LogManager) 上传日志Amazon IoT Greengrass核心设备添加到 Amazon CloudWatch Logs。您可以从 Greengrass 核心、其他 Greengrass 组件以及其他不是 Greengrass 组件的应用程序和服务上传日志。

有关此组件将日志上传到的日志组和日志流的信息,请参阅Usage.

Versions

此组件具有以下版本:

  • 2.1.x

  • 2.0.x

Type

这个组件是一个插件组件(aws.greengrass.plugin)。这些区域有:Greengrass 核在与核心相同的 Java 虚拟机 (JVM) 中运行此组件。当您安装或重新启动此组件时,核心将重新启动。

此组件使用与 Greengrass 核相同的日志文件。有关更多信息,请参阅查看Amazon IoT GreengrassCore 软件日志

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

Requirements

此组件有以下要求:

  • 这些区域有:Greengrass 设备角色必须允许logs:CreateLogGrouplogs:CreateLogStreamlogs:PutLogEvents, 和logs:DescribeLogStreams操作,如以下 IAM 策略示例所示。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Effect": "Allow", "Resource": "*" } ] }
    注意

    这些区域有:Greengrass 设备角色安装时创建的Amazon IoT Greengrass默认情况下,核心软件包含此示例策略中的权限。

    有关更多信息,请参阅 。对 CloudWatch Logs 使用基于身份的策略(IAM 策略)中的Amazon CloudWatch Logs 用户指南.

Dependencies

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

2.1.3

下表列出了此组件 2.1.3 版的依赖关系。

依赖关系 兼容的版本 依赖关系类型
Greengrass 核 >=2.1.0 软性
2.1.2

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

依赖关系 兼容的版本 依赖关系类型
Greengrass 核 >=2.1.0 软性
2.1.1

下表列出此组件 2.1.1 版本的依赖关系。

依赖关系 兼容的版本 依赖关系类型
Greengrass 核 >=2.1.0 软性
2.1.0

下表列出此组件 2.1.0 版本的依赖关系。

依赖关系 兼容的版本 依赖关系类型
Greengrass 核心 >==2.1.0 软性
2.0.x

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

依赖关系 兼容的版本 依赖关系类型
Greengrass 核心 >==2.0.3 软性

有关组件依赖项的更多信息,请参阅。组件配方参考.

Configuration

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

v2.1.x
logsUploaderConfiguration

(可选)日志管理器组件上载的日志的配置。此对象包含以下信息:

systemLogsConfiguration

(可选)配置Amazon IoT Greengrass核心软件系统日志。指定此配置以使日志管理器组件能够管理系统日志。此对象包含以下信息:

uploadToCloudWatch

(可选) 您可以将系统日志上传到 CloudWatch Logs。

默认值:false

minimumLogLevel

(可选)要上传的最小信息级别。从以下日志级别中选择,此处按级别顺序列出:

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值:INFO

diskSpaceLimit

(可选)所有系统日志文件的最大总大小,单位为diskSpaceLimitUnit. 所有日志文件的总大小超过此最大总大小后,Amazon IoT Greengrass核心软件删除最早的日志文件。

此参数等效于系统日志磁盘空间限制参数 (totalLogsSizeKB)Greengrass 核组件. 如果在两个组件上指定此参数,则Amazon IoT Greengrass核心软件使用这两个值中的最小值作为最大总日志大小。

diskSpaceLimitUnit

(可选)diskSpaceLimit. 从以下选项中进行选择:

  • KB— 千字节

  • MB— 兆字节

  • GB— 千兆字节

默认值:KB

deleteLogFileAfterCloudUpload

(可选)在日志管理器组件将日志上传到 CloudWatch 日志后,您可以删除日志文件。

默认值:false

componentLogsConfiguration

(可选)核心设备上组件的日志配置列表。此列表中的每个配置都定义了组件或应用程序的日志配置。日志管理器组件将这些组件日志上传到 CloudWatch Logs

每个对象包含以下信息:

componentName

此日志配置的组件名称。可以指定 Greengrass 组件的名称或其他值以标识此日志组。

minimumLogLevel

(可选)要上传的最小信息级别。从以下日志级别中选择,此处按级别顺序列出:

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值:INFO

logFileDirectoryPath

(可选)包含此组件日志文件的文件夹的路径。

您不需要为打印到标准输出 (stdout) 和标准错误 (stderr) 的 Greengrass 组件指定此参数。

默认值: /greengrass/v2/logs.

logFileRegex

(可选)指定组件或应用程序使用的日志文件名格式的正则表达式。日志管理器组件使用此正则表达式来标识logFileDirectoryPath.

您不需要为打印到标准输出 (stdout) 和标准错误 (stderr) 的 Greengrass 组件指定此参数。

如果组件或应用程序旋转日志文件,请指定与轮换日志文件名匹配的正则表达式。例如,您可以指定hello_world\\w*.log以上传您好世界应用程序的日志。这些区域有:\\w*模式匹配零个或多个单词字符,其中包括字母数字字符和下划线。这个正则表达式匹配日志文件,其名称中带有时间戳和不带时间戳。在此示例中,日志管理器上传以下日志文件:

  • hello_world.log— Hello World 应用程序的最新日志文件。

  • hello_world_2020_12_15_17_0.log— Hello World 应用程序的较旧日志文件。

默认值:componentName\\w*.log,其中,组件名是此日志配置的组件的名称。

diskSpaceLimit

(可选)此组件的所有日志文件的最大总大小,单位为diskSpaceLimitUnit. 在此组件的日志文件的总大小超过此最大总大小后,Amazon IoT Greengrass核心软件删除最早的日志文件。

diskSpaceLimitUnit

(可选)diskSpaceLimit. 从以下选项中进行选择:

  • KB— 千字节

  • MB— 兆字节

  • GB— 千兆字节

默认值:KB

deleteLogFileAfterCloudUpload

(可选)在日志管理器组件将日志上传到 CloudWatch 日志后,您可以删除日志文件。

默认值:false

periodicUploadIntervalSec

(可选)日志管理器组件检查要上载的新日志文件的时间段(以秒为单位)。

默认值:300(5 分钟)

例如:配置 merge 更新

以下示例配置指定上载系统日志和com.example.HelloWorld组件日志添加到 CloudWatch Logs。

{ "logsUploaderConfiguration": { "systemLogsConfiguration": { "uploadToCloudWatch": "true", "minimumLogLevel": "INFO", "diskSpaceLimit": "10", "diskSpaceLimitUnit": "MB", "deleteLogFileAfterCloudUpload": "false" }, "componentLogsConfiguration": [ { "componentName": "com.example.HelloWorld", "minimumLogLevel": "INFO", "diskSpaceLimit": "10", "diskSpaceLimitUnit": "KB", "deleteLogFileAfterCloudUpload": "false" } ] }, "periodicUploadIntervalSec": "300" }
v2.0.x
logsUploaderConfiguration

(可选)日志管理器组件上载的日志的配置。此对象包含以下信息:

systemLogsConfiguration

(可选)配置Amazon IoT Greengrass核心软件系统日志。指定此配置以使日志管理器组件能够管理系统日志。此对象包含以下信息:

uploadToCloudWatch

(可选) 您可以将系统日志上传到 CloudWatch Logs。

默认值:false

minimumLogLevel

(可选)要上传的最小信息级别。从以下日志级别中选择,此处按级别顺序列出:

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值:INFO

diskSpaceLimit

(可选)所有系统日志文件的最大总大小,单位为diskSpaceLimitUnit. 所有日志文件的总大小超过此最大总大小后,Amazon IoT Greengrass核心软件删除最早的日志文件。

此参数等效于系统日志磁盘空间限制参数 (totalLogsSizeKB)Greengrass 核组件. 如果在两个组件上指定此参数,则Amazon IoT Greengrass核心软件使用这两个值中的最小值作为最大总日志大小。

diskSpaceLimitUnit

(可选)diskSpaceLimit. 从以下选项中进行选择:

  • KB— 千字节

  • MB— 兆字节

  • GB— 千兆字节

默认值:KB

deleteLogFileAfterCloudUpload

(可选)在日志管理器组件将日志上传到 CloudWatch 日志后,您可以删除日志文件。

默认值:false

componentLogsConfiguration

(可选)核心设备上组件的日志配置列表。此列表中的每个配置都定义了组件或应用程序的日志配置。日志管理器组件将这些组件日志上传到 CloudWatch Logs

每个对象包含以下信息:

componentName

此日志配置的组件名称。可以指定 Greengrass 组件的名称或其他值以标识此日志组。

minimumLogLevel

(可选)要上传的最小信息级别。从以下日志级别中选择,此处按级别顺序列出:

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值:INFO

logFileDirectoryPath

包含此组件日志文件的文件夹的路径。

要上载 Greengrass 组件的日志,请指定/greengrass/v2/logs,然后替换/绿草/v2与您的 Greengrass 根文件夹。

logFileRegex

一个正则表达式,它指定组件或应用程序使用的日志文件名格式。日志管理器组件使用此正则表达式来标识logFileDirectoryPath.

要上载 Greengrass 组件的日志,请指定与轮换日志文件名匹配的正则表达式。例如,您可以指定com.example.HelloWorld\\w*.log以上传 Hello World 组件的日志。这些区域有:\\w*模式匹配零个或多个单词字符,其中包括字母数字字符和下划线。这个正则表达式匹配日志文件,其名称中带有时间戳和不带时间戳。在此示例中,日志管理器上传以下日志文件:

  • com.example.HelloWorld.log— Hello World 组件的最新日志文件。

  • com.example.HelloWorld_2020_12_15_17_0.log— Hello World 组件的较旧日志文件。Greengrass 核将一个旋转时间戳添加到日志文件中。

diskSpaceLimit

(可选)此组件的所有日志文件的最大总大小,单位为diskSpaceLimitUnit. 在此组件的日志文件的总大小超过此最大总大小后,Amazon IoT Greengrass核心软件删除最早的日志文件。

diskSpaceLimitUnit

(可选)diskSpaceLimit. 从以下选项中进行选择:

  • KB— 千字节

  • MB— 兆字节

  • GB— 千兆字节

默认值:KB

deleteLogFileAfterCloudUpload

(可选)在日志管理器组件将日志上传到 CloudWatch 日志后,您可以删除日志文件。

默认值:false

periodicUploadIntervalSec

(可选)日志管理器组件检查要上载的新日志文件的时间段(以秒为单位)。

默认值:300(5 分钟)

例如:配置 merge 更新

以下示例配置指定上载系统日志和com.example.HelloWorld组件日志添加到 CloudWatch Logs。

{ "logsUploaderConfiguration": { "systemLogsConfiguration": { "uploadToCloudWatch": "true", "minimumLogLevel": "INFO", "diskSpaceLimit": "10", "diskSpaceLimitUnit": "MB", "deleteLogFileAfterCloudUpload": "false" }, "componentLogsConfiguration": [ { "componentName": "com.example.HelloWorld", "minimumLogLevel": "INFO", "logFileDirectoryPath": "/greengrass/v2/logs", "logFileRegex": "com.example.HelloWorld\\w*.log", "diskSpaceLimit": "10", "diskSpaceLimitUnit": "KB", "deleteLogFileAfterCloudUpload": "false" } ] }, "periodicUploadIntervalSec": "300" }

Usage

日志管理器组件将上载到以下日志组和日志流。

2.1.x
日志组名称
/aws/greengrass/componentType/region/componentName

日志组名称使用以下变量:

  • componentType— 组件的类型,可以是以下类型之一:

    • GreengrassSystemComponent— 组件是Greengrass 核心.

    • UserComponent— 组件不属于 Greengrass 核。日志管理器将此类型用于 Greengrass 组件和设备上的其他应用程序。

  • region—Amazon核心设备使用的区域。

  • componentName— 组件名称。对于系统日志,此值为System.

日志流名称
/date/thing/thingName

日志流名称使用以下变量:

  • date— 日志的日期,例如2020/12/15. 日志管理器组件使用yyyy/MM/dd格式的日期和时间。

  • thingName— 核心设备的名称。

注意

如果事物名称包含冒号(:),日志管理器将冒号替换为加号(+)。

2.0.x
日志组名称
/aws/greengrass/componentType/region/componentName

日志组名称使用以下变量:

  • componentType— 组件的类型,可以是以下类型之一:

    • GreengrassSystemComponent— 组件是Greengrass 核心.

    • UserComponent— 组件不属于 Greengrass 核。日志管理器将此类型用于 Greengrass 组件和设备上的其他应用程序。

  • region—Amazon核心设备使用的区域。

  • componentName— 组件名称。对于系统日志,此值为System.

日志流名称
/date/deploymentTargets/thingName

日志流名称使用以下变量:

  • date— 日志的日期,例如2020/12/15. 日志管理器组件使用yyyy/MM/dd格式的日期和时间。

  • deploymentTargets— 其部署包含组件的内容。日志管理器组件用斜杠分隔每个目标。如果组件作为本地部署的结果在核心设备上运行,则此值为LOCAL_DEPLOYMENT.

    考虑这样一个使用情景示例,您有一个名为MyGreengrassCore,并且核心设备有两个部署:

    • 以核心设备为目标的部署MyGreengrassCore.

    • 针对名为MyGreengrassCoreGroup,其中包含核心设备。

    这些区域有:deploymentTargets对于这个核心设备是thing/MyGreengrassCore/thinggroup/MyGreengrassCoreGroup.

  • thingName— 核心设备的名称。

Changelog

下表介绍组件每一版的中的更改。

Version

更改

2.1.3

更新 Greengrass 核 2.4.0 版发行。

2.1.2

更新 Greengrass 核 2.3.0 版发行。

2.1.1

错误修复和改进
  • 修复了某些情况下系统日志配置未更新的问题。

2.1.0

错误修复和改进
  • 使用默认值logFileDirectoryPathlogFileRegex,用于打印到标准输出(stdout)和标准错误(stderr)的 Greengrass 组件。

  • 将日志上传到 CloudWatch Logs 日志时,通过配置的网络代理正确路由流量。

  • 正确处理冒号字符(:)在日志流名称中。CloudWatch Logs 日志流名称不支持冒号。

  • 通过从日志流中删除事物组名来简化日志流名称。

  • 删除正常行为期间打印的错误日志消息。

2.0.x

初始版本。