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

时间:2016-07-29 13:44:26

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

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

No Event Data

链接说明了如何开始发送​​事件数据,但我已经设置了这个,并且我发送的是事件数据,它在一段时间后就会消失。

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

2 个答案:

答案 0 :(得分:1)

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

enter image description here

我取消了"" Expire Events"框,看,我能够打开较旧的日志流。真正奇怪的是,如果我选择显示" Stored Bytes"数据,即使它们有日志事件,许多文件也以0字节列出:

7/29/2016 CloudWatch Log Streams

更新1:

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

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

答案 1 :(得分: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