AWS Greengrass不会生成用户日志

时间:2018-11-07 23:34:33

标签: aws-iot greengrass

在使用AWS getting started guide进行的全新安装中,我没有得到用户日志(在 / greengrass / ggc / var / log / user 中),这使得做任何Greengrass lambda开发。

以下是一些症状:

  • / greengrass / ggc / var / log / user 未创建(当我手动创建它及其下的子目录时, user / us-east-1 / ,greengrassd删除了所有这些子目录)
  • /greengrass/ggc/var/log/system/localwatch/localwatch.log failed to list the user log directory, path: /greengrass/ggc/var/log/user
  • 中有一条消息
  • runtime.log crash.log 或其他任何系统日志中都没有其他错误消息。

我有很多理论,但我无法证实这一点:

  • 我一直在交换相同RPi上的SD卡,每个SD卡上都有不同版本的Raspbian(Jessie,Stretch,不同的内核版本)和不同的Greengrass组。 SD卡的这种交换是否可能是原因(例如,AWS或它们使用的某些其他服务(例如overlayFS)带有硬件指纹)?在另一个我没有进行此交换的RPi上,我似乎没有问题。

  • 组角色的IAM设置是否存在问题?我本以为IAM仅适用于云服务,不适用于网关上的Greengrass服务。

任何人对此有任何见解将不胜感激!!!

3 个答案:

答案 0 :(得分:0)

我只发生过一次这种事。对我而言,在新系统上全新安装GG和内核有助于并消除了所有错误。也就是说,控制台中有一个地方应检查以验证是否已启用日志:

-在“ Greengrass组”下,选择组,然后从那里转到“设置”,您将看到“本地日志配置”。确保已启用这些功能,然后重新部署以进行激活。

至于调试lambda代码,我建议使用“ python-lambda-local”来帮助调试python的lambda代码。另外,请不要忘记其中某些文件位置需要 sudo 才能查看文件和子文件夹。

答案 1 :(得分:0)

最终,这是一个配置错误,但是我被localwatch.log中的错误消息所吸引(正如我在第一篇文章中提到的那样)。

我要做的是设置一些在RPi上运行的lambda,以立即(通过console.logs)报告正在发生的事情,然后我将其中的两个lambda设置为“使此功能长期存在并保持下去无限期运行”(在Greengrass UI上的“特定于组的lambda配置”中)。结果,每次Greengrass守护程序启动时,都会在用户日志中记录一些内容。

对于我的第二个RPi,我手动配置了lambda,但是忘记了让它们“长寿”,因此它们开始基于事件,因此默认情况下不运行lambda。当我进入用户日志目录时,在那里什么也找不到,而当我进入localwatch.log时,却收到消息 "failed to list the user log directory, path: /greengrass/ggc/var/log/user" 这似乎表明Greengrass难以访问用户日志目录结构。那让我大吃一惊。

解决方法很简单,就是进入GG UI,并将这两个lambda设置为长寿命,并且一旦lambda开始运行,便会创建用户日志目录(然后是日志)。

再次感谢您,J。Benson。很高兴看到其他人积极使用Greengrass,并希望我们将开始建立一个可以互相帮助的用户社区。请注意,我也将此内容发布在了AWS论坛上,但将其标记为已解决。

答案 2 :(得分:0)

作为更新,如果有人遇到此问题,我使用ggc docker映像遇到了相同的错误。由于我真的不希望进行全新安装,因此我发现:

 1.Remove all log settings from the greengrass core settings page
 2.Deploy
 3.Remake the settings to match the logs you want to have
 4.Deploy

我不确定中间的第二个部署是否有任何作用,但是在执行此操作之后,我已经准备好用户文件夹并设置了工作日志。