AWS cloudwatch记录未从紧凑型json格式中提取时间戳

时间:2017-12-27 05:46:18

标签: amazon-cloudwatch amazon-cloudwatchlogs

我正在使用AWS cloudwatch日志并配置我的应用程序以压缩json格式编写日志,其中sink是滚动文件。以下是来自应用程序的示例日志。

print_r($result);

现在我面对云观察日志的问题是它没有从这个紧凑的json格式化日志中获取时间戳,因为AWS cloudwatch日志期望第一个参数是时间戳,后跟空格,然后是message.So上面的日志需要采用以下格式才能通过AWS云观察日志获取

{"@t":"2017-12-21T10:00:51.5955080Z","@mt":"Error {@args}","@l":"Error","args":["args","31"]}

因此,要使我的紧凑型json日志由AWS cloudwatch日志处理,我需要明确提取时间戳并将其放在每个日志之前?或者AWS不提供紧凑的json格式日志?或者其他任何解决方法

我已经搜索过这个,但无法获得任何有用的信息。非常感谢。

1 个答案:

答案 0 :(得分:0)

如果我们可以更改 JSON,我们就可以让它工作。这不是原始问题的解决方案。我把它贴出来希望它可能有所帮助。

这是日志行。这里最重要的是时间之后和"request”之前的空间。

{"time":"11/Jan/2021:17:26:03 +0100", "request_addr":"78.82.196.176","request_length":"920","request_method":"POST","request_host":"aaa.elb.amazonaws.com","request_url":"http://aaa.elb.amazonaws.com/admin/netCallback.php","geoip_country_code":"SE","response_status": "200","response_sent":"257","response_time":"0.651","upstream_response_time":"0.652","upstream_connect_time":"0.000","http_referrer":"http://aaa.elb.amazonaws.com/admin/index.php","http_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"}

在这种情况下,日期时间格式如下。

datetime_format = {"time":"%d/%b/%Y:%H:%M:%S %z",