本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
监控Amazon IoT Greengrass日志
Amazon IoT Greengrass 由云服务和 Amazon IoT Greengrass 核心软件组成。Amazon IoT GreengrassCore 软件可以将日志写入 Amazon CloudWatch Logs 和核心设备的本地文件系统。在核心设备上运行的 Greengrass 组件也可以将 CloudWatch 日志写入日志和本地文件系统。您可以使用日志来监控事件和排查问题。所有 Amazon IoT Greengrass 日志条目包含时间戳、日志级别和事件相关信息。
默认情况下,Amazon IoT GreengrassCore 软件仅将日志写入本地文件系统。您可以实时查看文件系统日志,因此可以调试自己开发和部署的 Greengrass 组件。您还可以将核心设备配置为将日志写入日 CloudWatch 志,这样就可以在不访问本地文件系统的情况下对核心设备进行故障排除。有关更多信息,请参阅启用日志 CloudWatch 记录:
主题
访问文件系统日志
Amazon IoT GreengrassCore 软件将日志存储在核心设备上的
文件夹中,其中 /greengrass/v2
/logs/greengrass/v2
是Amazon IoT Greengrass根文件夹的路径。日志文件夹具有如下结构。
/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 nucleus(Amazon IoT Greengrass核心软件的核心)和插件组件(例如日志管理器和密钥管理器)的日志。 -
— Greengrass 组件日志文件。使用组件日志文件查看有关在核心设备上运行的 Greengrass 组件的实时信息。通用组件和 Lambda 组件将标准输出 (stdout) 和标准错误 (stderr) 写入这些日志文件。ComponentName
.log -
main.log
— 处理组件生命周期的main
服务的日志文件。此日志文件将始终为空。
有关插件、通用和 Lambda 组件之间的差异的更多信息,请参阅组件类型。
在使用文件系统日志时,请注意以下几点:
-
根用户权限
您必须具有根权限才能读取文件系统上的 Amazon IoT Greengrass 日志。
-
日志文件轮换
Amazon IoT GreengrassCore 软件每小时轮换一次日志文件,或者当日志文件超过文件大小限制时。轮换日志文件的文件名中包含时间戳。例如,轮换的Amazon IoT Greengrass Core 软件日志文件可能被命名为
greengrass_2021_09_14_15_0.log
。默认文件大小限制为 1,024 KB (1 MB)。你可以在 Greengrass nucleus 组件上配置文件大小限制。 -
删除日志文件
当Amazon IoT Greengrass Core 软件日志文件或 GreengAmazon IoT Greengrass rass 组件日志文件(包括轮换的日志文件)的大小超过磁盘空间限制时,Core 软件会清理之前的日志文件。Amazon IoT Greengrass核心软件日志和每个组件日志的默认磁盘空间限制为 10,240 KB (10 MB)。您可以在 Greengrass nucleus 组件或日志管理器组件上配置Amazon IoT Greengrass核心软件日志磁盘空间限制。您可以在日志管理器组件上配置每个组件的日志磁盘空间限制。
查看Amazon IoT Greengrass核心软件日志文件
-
运行以下命令以实时查看日志文件。将
/greengrass/v2
替换为Amazon IoT Greengrass根文件夹的路径。
查看组件的日志文件
-
运行以下命令以实时查看日志文件。将
/greengrass/v2
或C:\greengrass\v2
替换为Amazon IoT Greengrass根文件夹的路径,然后替换com.example。 HelloWorld
使用组件名称。
你也可以使用 Greengrass CLI 的logs
命令来分析核心设备上的 Greengrass 日志。要使用该logs
命令,必须将 Greengrass 核心配置为输出 JSON 格式的日志文件。有关更多信息,请参阅 Gmmmmmmmmmm 和 日志。
访问 CloudWatch 日志
您可以部署日志管理器组件来配置核心设备以写入 CloudWatch 日志。有关更多信息,请参阅启用日志 CloudWatch 记录:然后,您可以在亚马逊 CloudWatch 控制台的日志页面或使用日 CloudWatch 志 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
— 核心设备的名称。
注意
如果事物名称包含冒号 (
:
),则日志管理器将该冒号替换为加号 (+
)。 -
在使用日志管理器组件写入Log CloudWatch s 时,请注意以下几点:
-
记录延迟
注意
我们建议您升级到日志管理器版本 2.3.0,该版本可减少轮换和活动日志文件的日志延迟。当你升级到日志管理器 2.3.0 时,我们还建议你升级到 Greengrass nucleus 2.9.1。
日志管理器组件版本 2.2.8(及更早版本)仅处理和上传来自轮换日志文件的日志。默认情况下,Amazon IoT GreengrassCore 软件每小时轮换一次日志文件,或者在 1,024 KB 之后轮换日志文件。因此,只有在Amazon IoT Greengrass Core 软件或 Greengrass 组件写入超过 1,024 KB 的日志之后,日志管理器组件才会上传日志。您可以配置较低的日志文件大小限制以使日志文件更频繁地旋转。这会导致日志管理器组件更频繁地将 CloudWatch 日志上传到日志。
日志管理器组件版本 2.3.0(及更高版本)处理和上传所有日志。当您写入新日志时,日志管理器版本 2.3.0(及更高版本)会处理并直接上传该活动日志文件,而不是等待其轮换。这意味着您可以在 5 分钟或更短的时间内查看新日志。
日志管理器组件定期上传新日志。默认情况下,日志管理器组件每 5 分钟上传一次新日志。您可以配置较低的上传间隔,这样日志管理器组件就可以通过配置更频繁地将 CloudWatch 日志上传到日志
periodicUploadIntervalSec
。有关如何配置此定期间隔的详细信息,请参阅 “配置。可以从同一 Greengrass 文件系统近乎实时地上传日志。如果您需要实时观察日志,请考虑使用文件系统日志。
注意
如果您使用不同的文件系统写入日志,则日志管理器会恢复到日志管理器组件版本 2.2.8 及更早版本中的行为。有关访问文件系统日志的信息,请参阅访问文件系统日志。
-
时钟偏差
日志管理器组件使用标准签名版本 4 签名流程创建对 CloudWatch 日志的 API 请求。如果核心设备上的系统时间不同步超过 15 分钟,则 CloudWatch Logs 会拒绝请求。有关更多信息,请参阅《Amazon Web Services 一般参考》中的签名版本 4 签名流程。
访问系统服务日志
如果您将Amazon IoT Greengrass核心软件配置为系统服务,则可以查看系统服务日志以解决问题,例如软件无法启动。
查看系统服务日志 (CLI)
-
运行以下命令以查看Amazon IoT Greengrass核心软件系统服务日志。
-
在 Windows 设备上,Amazon IoT GreengrassCore 软件会为系统服务错误创建单独的日志文件。运行以下命令以查看系统服务错误日志。
在 Windows 设备上,您还可以使用事件查看器应用程序查看系统服务日志。
查看 Windows 服务日志(事件查看器)
-
打开事件查看器应用程序。
-
选择 Windows 日志将其展开。
-
选择应用程序查看应用程序服务日志。
-
查找并打开来源为的事件日志greengrass。
启用日志 CloudWatch 记录
您可以部署日志管理器组件来配置核心设备以将日志写入日 CloudWatch 志。您可以为Amazon IoT Greengrass核心软件 CloudWatch 日志启用日志,也可以为特定 Greengrass 组件启用 CloudWatch 日志。
注意
Greengrass 核心设备的代币交换角色必须允许核心设备写入 CloudWatch 日志,如以下示例 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 Greengrass核心软件日志写入 CloudWatch 日志,请创建一个部署,指定该aws.greengrass.LogManager
组件uploadToCloudWatch
true
的配置更新。 Amazon IoT Greengrass核心软件日志包括 Greengrass 核心和插件组件的日志。
{ "logsUploaderConfiguration": { "systemLogsConfiguration": { "uploadToCloudWatch": "true" } } }
要配置核心设备以将 Greengrass 组件的日志写入 CloudWatch Logs,请创建一个指定配置更新的部署,将该组件添加到组件日志配置列表中。将组件添加到此列表时,日志管理器组件会将其日志写入 CloudWatch 日志。组件日志包括通用组件和 Lambda 组件的日志。
{ "logsUploaderConfiguration": { "componentLogsConfigurationMap": { "
com.example.HelloWorld
": { } } } }
部署日志管理器组件时,还可以配置磁盘空间限制,以及核心设备在将日志文件写入日志后是否将其 CloudWatch 删除。有关更多信息,请参阅为 Amazon IoT Greengrass 配置日志记录:
为 Amazon IoT Greengrass 配置日志记录
您可以配置以下选项,在 Greengrass 核心设备中提供日志记录的选项。要配置这些选项,请创建一个部署,指定对 Greengrass 核心或日志管理器组件进行配置更新。
-
将日志写入 CloudWatch 日志
要远程排除核心设备故障,您可以将核心设备配置为将Amazon IoT Greengrass核心软件和组件日志写入 CloudWatch 日志。为此,请部署和配置日志管理器组件。有关更多信息,请参阅启用日志 CloudWatch 记录:
-
删除上传的日志文件
为了减少磁盘空间的使用,您可以将核心设备配置为在将日志文件写入日志后删除 CloudWatch 日志文件。有关更多信息,请参阅日志管理器组件的
deleteLogFileAfterCloudUpload
参数,您可以为Amazon IoT Greengrass核心软件日志和组件日志指定该参数。 -
日志磁盘空间限制
要限制磁盘空间的使用,可以在核心设备上为每个日志(包括其轮换的日志文件)配置最大磁盘空间。例如,您可以为
greengrass.log
和旋转greengrass.log
文件配置最大组合磁盘空间。有关更多信息,请参阅 Greengrass nucleus 组件的logging.totalLogsSizeKB
diskSpaceLimit
参数和日志管理器组件的参数,您可以为Amazon IoT Greengrass核心软件日志和组件日志指定这些参数。 -
日志文件大小限制
您可以为每个日志文件配置最大文件大小。日志文件超过此文件大小限制后,Amazon IoT GreengrassCore 软件会创建一个新的日志文件。日志管理器组件仅将轮换的日志文件写入 CloudWatch 日志,因此您可以指定较低的文件大小限制以更频繁地将 CloudWatch 日志写入日志。有关更多信息,请参阅 Greengrass 核心组件的日志文件大小限制参数 (
logging.fileSizeKB
)。 -
最低日志级别
您可以配置 Greengrass nucleus 组件写入文件系统日志的最低日志级别。例如,您可以指定
DEBUG
级别日志来帮助进行故障排除,也可以指定ERROR
级别日志以减少核心设备创建的日志量。有关更多信息,请参阅 Greengrass 核心组件的日志级别参数 (logging.level
)。您还可以配置日志管理器组件写入日志的最低 CloudWatch 日志级别。例如,您可以指定更高的日志级别以降低日志成本
。有关更多信息,请参阅日志管理器组件的 minimumLogLevel
参数,您可以为Amazon IoT Greengrass核心软件日志和组件日志指定该参数。 -
检查要写入日志的日志的时间间隔 CloudWatch
要增加或减少日志管理器组件将日志写入日志的频率,可以配置它检查要写入的新日志文件的间隔。 CloudWatch 例如,您可以指定比默认的 5 分钟间隔更短的时间间隔来查看 CloudWatch 日志中的日志。您可以指定更高的间隔以降低成本,因为日志管理器组件将日志文件批处理成更少的请求。有关更多信息,请参阅日志管理器组件的上传间隔参数 (
periodicUploadIntervalSec
)。 -
日志格式
您可以选择Amazon IoT Greengrass核心软件是在中提供文本或 JSON 格式的日志。如果您读取日志,请选择文本格式;如果您使用应用程序读取或解析日志,请选择 JSON 格式。有关更多信息,请参阅 Greengrass 核心组件的日志格式参数 (
logging.format
)。 -
本地文件系统日志文件夹
您可以将日志文件夹从更改
为核心设备上的另一个文件夹。有关更多信息,请参阅 Greengrass 核心组件的输出目录参数 (/greengrass/v2
/logslogging.outputDirectory
)。
Amazon CloudTrail 日志
Amazon IoT Greengrass与集成Amazon CloudTrail,后者是记录用户、角色或所执行操作Amazon Web Service的服务Amazon IoT Greengrass。有关更多信息,请参阅 使用 Amazon IoT Greengrass V2 记录 Amazon CloudTrail API 调用。