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

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

日志

使用 logs 命令分析核心设备上的 Greengrass 日志。

get

收集、筛选和可视化 Greengrass 日志文件。此命令仅支持 JSON 格式的日志文件。您可以在核心配置中指定日志记录格式

摘要
greengrass-cli logs get [--log-dir path/to/a/log/folder] [--log-file path/to/a/log/file] [--follow true | false ] [--filter <filter> ] [--time-window <start-time>,<end-time> ] [--verbose ] [--no-color ] [--before <value> ] [--after <value> ] [--syslog ] [--max-long-queue-size <value> ]
Arguments (参数)
  • --log-dir-ld。用于检查日志文件的目录路径,例如 /greengrass/v2/logs。请勿与 --syslog 一起使用。每个要指定的其它目录均需使用单独的参数。您必须使用 --log-dir--log-file 中的至少一个。您也可以在一个命令中同时使用这两个参数。

  • --log-file-lf。您要使用的日志目录的路径。每个要指定的其它目录均需使用单独的参数。您必须使用 --log-dir--log-file 中的至少一个。您也可以在一个命令中同时使用这两个参数。

  • --follow-fol。显示发生的日志更新。Greengrass CLI 继续运行并读取指定日志。如果您指定时间窗口,则 Greengrass CLI 会在所有时间窗口结束后停止监控日志。

  • --filter-f。用作筛选条件的关键字、正则表达式或键值对。以字符串、正则表达式或键值对的形式提供该值。每个要指定的其它筛选条件均需使用单独的参数。

    评估后,在单个参数中指定的多个筛选条件使用 OR 运算符分隔,而在其它参数中指定的筛选条件则用 AND 运算符组合。例如,如果您的命令包含 --filter "installed" --filter "name=alpha,name=beta",则 Greengrass CLI 将筛选并显示同时包含关键字 installed和值为 alphabeta 的键 name 的日志消息。

  • --time-window-t。显示日志信息的时间窗口。您可以同时使用精确的时间戳和相对偏移量。必须以 <begin-time>,<end-time> 格式提供此信息。如果您未指定开始时间或结束时间,则该选项的值将默认为当前的系统日期和时间。每个要指定的其它时间窗口均需使用单独的参数。

    Greengrass CLI 支持以下格式的时间戳:

    • yyyy-MM-DD,例如 2020-06-30。使用此格式时,时间默认为 00:00:00。

      yyyyMMDD,例如 20200630。使用此格式时,时间默认为 00:00:00。

      HH:mm:ss,例如 15:30:45。使用此格式时,日期默认为当前系统日期。

      HH:mm:ssSSS,例如 15:30:45。使用此格式时,日期默认为当前系统日期。

      YYYY-MM-DD'T'HH:mm:ss'Z',例如 2020-06-30T15:30:45Z

      YYYY-MM-DD'T'HH:mm:ss,例如 2020-06-30T15:30:45

      yyyy-MM-dd'T'HH:mm:ss.SSS,例如 2020-06-30T15:30:45.250

    相对偏移量指定偏移当前系统时间的时间段。Greengrass CLI 支持以下格式的相对偏移量:+|-[<value>h|hr|hours][valuem|min|minutes][value]s|sec|seconds

    例如,以下参数用于指定当前时间之前的 1 小时到 2 小时 15 分钟之间的时间窗口:--time-window -2h15min,-1hr

  • --verbose。显示日志消息中的所有字段。请勿与 --syslog 一起使用。

  • --no-color-nc。移除颜色编码。日志消息的默认颜色编码使用红色粗体文本。由于使用 ANSI 转义序列,因此仅支持 Unix 类终端。

  • --before-b。在匹配的日志条目之前显示的行数。默认值为 0。

  • --after-a。在匹配的日志条目之后显示的行数。默认值为 0。

  • --syslog。 使用定义的 syslog 协议处理所有日志文件。 RFC3164请勿与 --log-dir--verbose 一起使用。系统协议使用以下格式:"<$Priority>$Timestamp $Host $Logger ($Class): $Message"如果您未指定日志文件,则 Greengrass CLI 会从以下位置读取日志消息:/var/log/messages/var/log/syslog/var/log/system.log

    Amazon IoT Greengrass 目前不支持在 Windows 核心设备上使用此功能。

  • --max-log-queue-size-m。分配给内存的最大日志条目数量。使用此选项可优化内存使用情况。默认值为 100。

输出

下面的示例显示运行此命令时产生的输出。

$ sudo greengrass-cli logs get --verbose \ --log-file /greengrass/v2/logs/greengrass.log \ --filter deployment,serviceName=DeploymentService \ --filter level=INFO \ --time-window 2020-12-08T01:11:17,2020-12-08T01:11:22 2020-12-08T01:11:17.615Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.DeploymentService: Current deployment finished. {DeploymentId=44d89f46-1a29-4044-ad89-5151213dfcbc, serviceName=DeploymentService, currentState=RUNNING} 2020-12-08T01:11:17.675Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.IotJobsHelper: Updating status of persisted deployment. {Status=SUCCEEDED, StatusDetails={detailed-deployment-status=SUCCESSFUL}, ThingName=MyThing, JobId=22d89f46-1a29-4044-ad89-5151213dfcbc

list-keywords

显示可用于筛选日志文件的建议关键字。

摘要
greengrass-cli logs list-keywords [arguments]
Arguments (参数)

输出

下面的示例显示运行此命令时产生的输出。

$ sudo greengrass-cli logs list-keywords Here is a list of suggested keywords for Greengrass log: level=$str thread=$str loggerName=$str eventType=$str serviceName=$str error=$str
$ sudo greengrass-cli logs list-keywords --syslog Here is a list of suggested keywords for syslog: priority=$int host=$str logger=$str class=$str

list-log-files

显示位于指定目录中的日志文件。

摘要
greengrass-cli logs list-log-files [arguments]
Arguments (参数)

--log-dir-ld。用于检查日志文件的目录路径。

输出

下面的示例显示运行此命令时产生的输出。

$ sudo greengrass-cli logs list-log-files -ld /greengrass/v2/logs/ /greengrass/v2/logs/aws.greengrass.Nucleus.log /greengrass/v2/logs/main.log /greengrass/v2/logs/greengrass.log Total 3 files found.