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

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

显示器Amazon IoT Greengrass圆木

Amazon IoT Greengrass 由云服务和 Amazon IoT Greengrass 核心软件组成。这些区域有:Amazon IoT Greengrass核心软件可以将日志写入亚马逊 CloudWatch 日志和到核心设备的本地文件系统。在核心设备上运行的 Greengrass 组件也可以将日志写入 CloudWatch 日志和本地文件系统。您可以使用日志来监控事件和排查问题。所有 Amazon IoT Greengrass 日志条目包含时间戳、日志级别和事件相关信息。

默认为Amazon IoT Greengrass核心软件仅将日志写入本地文件系统。您可以实时查看文件系统日志,以便调试您开发和部署的 Greengrass 组件。也可以将核心设备配置为将日志写入到 CloudWatch 日志,这样您就可以在不访问本地文件系统的情况下对核心设备进行故障排除。有关更多信息,请参阅 启用日志记录到 CloudWatch 日志

访问文件系统日志日志日志

这些区域有:Amazon IoT Greengrass核心软件将日志存储在/greengrass/v2/logs核心设备上的文件夹,其中/greengrass/v2是到Amazon IoT Greengrass根文件夹。Logs 文件夹具有以下结构。

/greengrass/v2 └── logs ├── greengrass.log ├── greengrass_2021_09_14_15_0.log ├── ComponentName.log ├── ComponentName_2021_09_14_15_0.log └── main.log
  • greengrass.log— 该Amazon IoT Greengrass核心软件日志文件。使用此日志文件可以查看有关组件和部署的实时信息。此日志文件包含Greengrass 原子核的日志,格林格拉斯原子核是Amazon IoT Greengrass核心软件和插件组件,例如日志管理器秘密管理器.

  • ComponentName.log— Greengrass 组件日志文件。使用组件日志文件查看有关在核心设备上运行的 Greengrass 组件的实时信息。通用组件和 Lambda 组件将标准输出 (stdout) 和标准错误 (stderr) 写入这些日志文件。

  • main.log— 的日志文件main处理组件生命周期的服务。此日志文件将始终为空。

有关插件、通用和 Lambda 组件之间的差异的更多信息,请参阅组件类型.

在使用文件系统日志时,请注意以下几点:

  • 根用户权限

    您必须具有根权限才能读取文件系统上的 Amazon IoT Greengrass 日志。

  • 日志文件轮换

    这些区域有:Amazon IoT Greengrass核心软件每小时轮换一次日志文件,或者当日志文件超过文件大小限制时。轮换过的日志文件的文件名中包含时间戳。例如,一个旋转Amazon IoT Greengrass核心软件日志文件可能被命名为greengrass_2021_09_14_15_0.log. 默认文件大小限制为 1,024 KB (1 MB)。您可以在上配置文件大小限制Greengrass 核组件.

  • Log文件删除

    这些区域有:Amazon IoT Greengrass核心软件会清理较早的日志文件大小为Amazon IoT Greengrass核心软件日志文件或 Greengrass 组件日志文件(包括轮换的日志文件)超过了磁盘空间限制。的默认磁盘空间限制Amazon IoT Greengrass核心软件日志和每个组件日志为 10,240 KB (10 MB)。您可以配置Amazon IoT Greengrass的核心软件日志磁盘空间限制Greengrass 核组件或者日志管理器组件. 您可以在上配置每个组件的日志磁盘空间限制日志管理器组件.

查看Amazon IoT GreengrassCore 软件文件

  • 运行以下命令以实时查看日志文件。Replace/greengrass/v2还有通往Amazon IoT Greengrass根文件夹。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\com.example.HelloWorld.log

    这些区域有:type命令将文件内容写入终端。多次运行此命令以观察文件中的更改。

    这些区域有:type命令将文件内容写入终端。多次运行此命令以观察文件中的更改。

    PowerShell
    gc C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

查看组件的日志文件

  • 运行以下命令以实时查看日志文件。Replace/greengrass/v2要么C:\greengrass\v2还有通往Amazon IoT Greengrass根文件夹,并替换.example。HelloWorld具有组件名称。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.HelloWorld.log
    PowerShell
    gc C:\greengrass\v2\logs\com.example.HelloWorld.log -Tail 10 -Wait

您也可以使用logs的命令Greengrass分析核心设备上的 Greengrass 日志。使用logs命令时,您必须配置Greengrass 核以输出 JSON 格式的日志文件。有关更多信息,请参阅 Greengrass Command Line Interface日志

访问 CloudWatch 日志

你可以部署日志管理器组件配置要写入的核心设备 CloudWatch 日志。有关更多信息,请参阅 启用日志记录到 CloudWatch 日志。然后,您可以在日志亚马逊的页面 CloudWatch 控制台或使用 CloudWatch Logs API。

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

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

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

    • GreengrassSystemComponent— 组件是Greengrass 核. 此日志组包含插件组件的日志,这些组件与 Greengrass 核心在同一 JVM 中运行。

    • UserComponent— 组件不属于 Greengrass 核心。此日志组包括通用组件、Lambda 组件和设备上的其他应用程序的日志。

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

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

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

日志流名称
/date/thing/thingName

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

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

  • thingName— 核心设备的名称。

注意

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

在使用日志管理器组件写入时,请注意以下几点 CloudWatch 日志:

  • 日志延迟

    日志管理器组件仅从轮换的日志文件中写入日志。默认为Amazon IoT Greengrass核心软件每小时轮换一次日志文件,或者在日志文件大小为 1,024 KB 后轮换一次。因此,日志管理器组件仅在Amazon IoT Greengrass核心软件或 Greengrass 组件会写入超过 1,024 KB 的日志。您可以配置较低的日志文件大小限制,以使日志文件更频繁地轮换。这会导致日志管理器组件将日志上传到 CloudWatch 更频繁地记录。

    日志管理器组件还会定期上传新日志。默认情况下,日志管理器组件每 5 分钟上传一次新日志。您可以配置较短的上传间隔,以便日志管理器组件将日志上传到 CloudWatch 更频繁地记录。

    如果您需要实时观察日志,请考虑使用文件系统日志日志记录.

  • 时钟偏差

    日志管理器组件使用标准签名版本 4 签名流程创建 API 请求 CloudWatch 日志。如果核心设备上的系统时间不同步的时长超过 15 分钟,则 CloudWatch 日志拒绝请求。有关更多信息,请参阅 。Signature Version 4 签名流程中的Amazon一般参考.

访问系统服务日志

如果您配置Amazon IoT Greengrass核心软件即系统服务,您可以查看系统服务日志以解决问题,例如软件无法启动。

查看系统服务日志 (CLI)

  1. 运行以下命令以查看Amazon IoT Greengrass核心软件系统服务日志。

    Linux or Unix (systemd)
    sudo journalctl -u greengrass.service
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\greengrass.wrapper.log
    PowerShell
    gc C:\greengrass\v2\logs\greengrass.wrapper.log
  2. 在 Windows 设备上,Amazon IoT Greengrass核心软件为系统服务错误创建单独的日志文件。运行以下命令以查看系统服务错误日志。

    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\greengrass.err.log
    PowerShell
    gc C:\greengrass\v2\logs\greengrass.err.log

在 Windows 设备上,您也可以使用事件查看器应用程序来查看系统服务日志。

查看 Windows 服务日志 (事件查看器)

  1. 打开事件查看器应用程序.

  2. SelectWindows 日志记录来扩展它。

  3. 选择应用程序以查看应用程序服务日志。

  4. 查找并打开事件日志greengrass.

启用日志记录到 CloudWatch 日志

你可以部署日志管理器组件配置核心设备以将日志写入到 CloudWatch 日志。你可以启用 CloudWatch 的 日志Amazon IoT Greengrass核心软件日志,你可以启用 CloudWatch 特定 Greengrass 组件的日志。

注意

Greengrass 核心设备的令牌交换角色必须允许核心设备写入 CloudWatch Logs,如以下示例 IAM 策略中所示。如果您安装了Amazon IoT Greengrass具有自动资源调配功能的核心软件,则您的核心设备具有这些权限。

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

配置要写入的核心设备Amazon IoT GreengrassCore 软件日志记录到 CloudWatch 日志,创建部署它指定了一个配置更新uploadToCloudWatchtrue(对于 )aws.greengrass.LogManager component. Amazon IoT Greengrass 核心软件日志包括日志Greengrass 核插件组件.

{ "logsUploaderConfiguration": { "systemLogsConfiguration": { "uploadToCloudWatch": "true" } } }

配置核心设备以将 Greengrass 组件的日志写入到 CloudWatch 日志,创建部署指定将组件添加到组件日志记录配置列表的配置更新。将组件添加到此列表时,日志管理器组件会将其日志写入 CloudWatch 日志。组件日志包括的日志通用组件和 Lambda 组件.

{ "logsUploaderConfiguration": { "componentLogsConfigurationMap": { "com.example.HelloWorld": { } } } }

部署日志管理器组件时,还可以配置磁盘空间限制,以及核心设备在将日志文件写入到之后是否将其删除 CloudWatch 日志。有关更多信息,请参阅 为 Amazon IoT Greengrass 配置日志记录

为 Amazon IoT Greengrass 配置日志记录

您可以配置以下选项来自定义 Greengrass 核心设备的日志记录。要配置这些选项,创建部署它指定 Greengrass 核心或日志管理器组件的配置更新。

  • 将日志写入 CloudWatch 日志

    要远程排除核心设备故障,可以将核心设备配置为写入Amazon IoT Greengrass将核心软件和组件日志记录到 CloudWatch 日志。为此,请部署和配置日志管理器组件. 有关更多信息,请参阅 启用日志记录到 CloudWatch 日志

  • 删除上传的日志文件

    要减少磁盘空间使用量,您可以将核心设备配置为在将日志文件写入后删除日志文件 CloudWatch 日志。有关更多信息,请参阅 Logs manigation 组件的deleteLogFileAfterCloudUpload参数,您可以为其指定Amazon IoT GreengrassCore 软件日志日组件日志记录.

  • Log磁盘空间限制

    要限制磁盘空间的使用,您可以在核心设备上为每个日志(包括其轮换的日志文件)配置最大磁盘空间。例如,您可以为以下项配置最大组合磁盘空间greengrass.log并旋转了greengrass.log文件。有关更多信息,请参阅 Greengrass 核组件的logging.totalLogsSizeKB参数和日志管理器组件的diskSpaceLimit参数,您可以为其指定Amazon IoT GreengrassCore 软件日志日组件日志记录.

  • 日志文件大小限制

    您可以为每个日志文件配置最大文件大小。日志文件超过此文件大小限制后,Amazon IoT Greengrass核心软件创建新的日志文件。这些区域有:日志管理器组件仅将轮换的日志文件写入 CloudWatch 日志,因此您可以指定较低的文件大小限制来写入日志 CloudWatch 更频繁地记录。有关更多信息,请参阅 Greengrass 核组件的日文件大小限制参数(logging.fileSizeKB)。

  • 最低日志级别

    您可以配置 Greengrass 核心组件写入文件系统日志的最低日志级别。例如,您可能指定DEBUG级别日志来帮助进行故障排除,或者你可以指定ERROR级别日志,以减少核心设备创建的日志数量。有关更多信息,请参阅 Greengrass 核组件的日志级参数(logging.level)。

    您还可以配置日志管理器组件写入的最低日志级别 CloudWatch 日志。例如,您可以指定更高的日志级别以减少Logging 成本. 有关更多信息,请参阅 Logs manigation 组件的minimumLogLevel参数,您可以为其指定Amazon IoT GreengrassCore 软件日志日组件日志记录.

  • 检查要写入的日志的时间间隔 CloudWatch 日志

    增加或减少日志管理器组件将日志写入的频率 CloudWatch 日志,您可以配置它检查要写入的新日志文件的间隔。例如,您可以指定较短的时间间隔以查看日志 CloudWatch 记录的时间比默认的 5 分钟间隔要早。您可以指定更高的间隔来降低成本,因为日志管理器组件会将日志文件批处理到较少的请求中。有关更多信息,请参阅 Logs manigation 组件的上传时间间隔参数(periodicUploadIntervalSec)。

  • 日志格式

    您可以选择是否Amazon IoT Greengrass核心软件以文本或 JSON 格式写入日志。如果您读取日志,请选择文本格式;如果使用应用程序读取或解析日志,请选择 JSON 格式。有关更多信息,请参阅 Greengrass 核组件的日志格式参数(logging.format)。

  • 本地文件系统日志文件夹

    您可以从中更改日志文件夹/greengrass/v2/logs转移到核心设备上的另一个文件夹。有关更多信息,请参阅 Greengrass 核组件的输出目录参数(logging.outputDirectory)。

Amazon CloudTrail 日志

Amazon IoT Greengrass已与 集成Amazon CloudTrail,提供用户、角色或角色所采取操作的记录的服务Amazon Web Service在Amazon IoT Greengrass. 有关更多信息,请参阅使用 Amazon IoT Greengrass V2 记录 Amazon CloudTrail API 调用