【问题标题】:Cloudwatch logs - No Event Data after time elapsesCloudwatch 日志 - 时间过去后没有事件数据
【发布时间】:2016-07-29 13:44:25
【问题描述】:

我查看了AWS forums 和其他地方,但没有找到解决方案。我有一个 lambda 函数,当被调用时,它会创建一个填充日志事件的日志流。大约 12 小时左右后,日志流仍然存在,但是当我打开它时,我看到以下内容:

链接解释了如何开始发送​​事件数据,但我已经设置好了,我正在发送事件数据,它只是在一段时间后消失。

我猜某处有一些设置(允许的最大存储空间或是否清除日志),但如果有,我还没有找到。

【问题讨论】:

  • 这是免费套餐吗?
  • 不,不是免费套餐,但值得一问!
  • 当您在过滤器中选择日期为 7 月 27 日时会发生什么?
  • 好主意...这是为了过滤单个日志流中的许多日志事件。不过,当你问到这件事时,我的心跳过了一拍。
  • 那么它是否显示了 7 月 27 日的事件?

标签: amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs


【解决方案1】:

TL;DR:只需使用 CLI。请参阅下面的更新 2。


这真的很奇怪,但我可以复制它......

我取消选中“Expire Events After”框,你瞧,我能够打开旧的日志流。看起来真的很奇怪的是,如果我选择显示“存储字节”数据,即使它们有日志事件,许多文件也会以 0 字节列出:

更新 1:

此解决方案不再有效,因为我只能查看前两个日志流中的日志事件。更重要的是,Stored Bytes 列显示不同(且更准确)的数据:

这让我相信 AWS 进行了某种更新。

更新 2:

只需使用 CLI。我已验证可以从 CLI 中检索无法通过 Web 控制台检索的日志事件。

首先安装 CLI(如果您尚未安装)并使用以下命令:

aws logs get-log-events --log-group-name NAME-OF-LOGGROUP --log-stream-name LOG-STREAM-NAME // be sure to escape special characters such as /, [, $ etc

【讨论】:

  • 最后几天(29/30)似乎很成问题。我有一个朋友寻求帮助,因为他无法登录他的帐户 - 他确实重置了密码并重新获得了访问权限。但是,他的所有实例都消失了,并且计费没有报告任何费用。然而,他的所有基础设施似乎都运行良好,因为他可以通过 SSH/RDP/HTTP(s) 进行连接。看起来这些实例只是与他的帐户解除关联。除此之外,我们在尝试访问仪表板时收到了各种 HTTP 500。不过,通过 CLI 似乎一切正常。
【解决方案2】:

日志流中缺少数据的另一个原因可能是代理状态文件损坏。首先检查您的日志

vim /var/log/awslogs.log

如果您发现类似“捕获异常:调用 PutLogEvents 操作时发生错误 (InvalidSequenceTokenException):给定的 sequenceToken 无效。下一个预期的 sequenceToken 是:”,您可以重新生成代理状态文件,如下所示:

sudo rm /var/lib/awslogs/agent-state
sudo service awslogs stop
sudo service awslogs start

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 2015-12-19
    • 1970-01-01
    • 2020-07-13
    • 2012-10-06
    • 2020-10-06
    相关资源
    最近更新 更多