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

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

日志管理器

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

日志管理器组件将 上传到以下日志组和日志流:

  • 日志组名称/aws/greengrass/componentType/region/componentName

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

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

      • GreengrassSystemComponent – 组件是 Greengrass 核心的一部分。

      • UserComponent – 组件不是 Greengrass 核心的一部分。日志管理器将此类型用于 Greengrass 组件和设备上的其他应用程序。

    • region – 核心设备使用的 AWS 区域。

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

  • 日志流名称/date/deploymentTargets/thingName

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

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

    • deploymentTargets – 部署包含 组件的事物和事物组。日志管理器组件通过冒号 () :分隔每个目标。如果组件作为本地部署的结果在核心设备上运行,则此值为 LOCAL_DEPLOYMENT

    • thingName – 核心设备的名称。

此组件具有以下版本:

  • 2.0.x

Requirements

此组件具有以下要求:

  • Greengrass 设备角色必须允许 logs:CreateLogGrouplogs:CreateLogStream、 和 logs:PutLogEvents logs:DescribeLogStreams 操作,如以下示例 IAM 策略所示。

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

    默认情况下,您在安装 AWS AWS IoT Greengrass 核心软件时创建的 Greengrass 设备角色包括此示例策略中的权限。

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

Configuration

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

logsUploaderConfiguration

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

systemLogsConfiguration

(可选 AWS IoT IoT Greengrass 核心软件系统日志的配置。此对象包含以下信息:

uploadToCloudWatch

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

默认值: true

minimumLogLevel

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

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值: INFO

diskSpaceLimit

(可选)所有系统日志文件的最大总大小(以您在 中指定的单位为单位diskSpaceLimitUnit)。在所有日志文件的总大小超过此最大总大小后 AWS IoT IoT Greengrass 核心软件将删除最旧的日志文件。

此参数等同于 Greengrass 核心组件的系统日志磁盘空间限制参数。如果您在这两个组件上指定此参数 AWS IoT IoT Greengrass 核心软件使用两个值的最小值作为最大总日志大小。

diskSpaceLimitUnit

(可选) 的单位diskSpaceLimit。从以下选项中进行选择:

  • KB – 千字节

  • MB – MB

  • GB – GB

默认值: MB

deleteLogFileAfterCloudUpload

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

默认值: true

componentLogsConfiguration

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

每个对象包含以下信息:

componentName

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

minimumLogLevel

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

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值: INFO

logFileDirectoryPath

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

要上传 Greengrass 组件的日志,请指定 /greengrass/v2/logs并替换 /greengrass/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)。在此组件的日志文件的总大小超过此最大总大小后 AWS IoT IoT Greengrass 核心软件将删除最旧的日志文件。

diskSpaceLimitUnit

(可选) 的单位diskSpaceLimit。从以下选项中进行选择:

  • KB – 千字节

  • MB – MB

  • GB – GB

默认值: MB

deleteLogFileAfterCloudUpload

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

默认值: true

periodicUploadIntervalSec

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

默认值:300(5 分钟)

例 示例:配置合并更新

以下示例配置指定将系统日志和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": "60" }