Cloudwatch日志-经过一段时间后没有事件数据

问题描述 投票:4回答:2

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

No Event Data

该链接说明了如何开始发送​​事件数据,但是我已经设置好了,并且正在发送事件数据,它在特定时间段后消失了。

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

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs
2个回答
1
投票

这确实很奇怪,但我可以复制它...

enter image description here

我取消选中了“过期事件之后”框,发现我能够打开较旧的日志流。看起来真的很奇怪,如果我选择显示“存储的字节”数据,即使有日志事件,许多文件也会以0字节列出:

7/29/2016 CloudWatch Log Streams

更新1:

此解决方案不再起作用,因为我只能查看前两个日志流中的日志事件。更重要的是,“存储的字节数”列显示了不同(且更准确)的数据:

8/01/2016 CloudWatch Log Streams

这使我相信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


0
投票

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

vim /var/log/awslogs.log

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

sudo rm /var/lib/awslogs/agent-state
sudo service awslogs stop
sudo service awslogs start
© www.soinside.com 2019 - 2024. All rights reserved.