【问题标题】:AWS cloudwatch logs not extracting timestamp from compact json formatAWS cloudwatch 日志未从紧凑的 json 格式中提取时间戳
【发布时间】:2018-06-07 18:58:19
【问题描述】:

我正在使用 AWS cloudwatch 日志并将我的应用程序配置为以紧凑的 json 格式编写日志,接收器是滚动文件。以下是应用程序的示例日志。

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

现在我在使用云观察日志时遇到的问题是它没有从这个紧凑的 json 格式的日志中获取时间戳,因为 AWS cloudwatch 日志期望第一个参数是时间戳,后跟空格,然后是消息。所以上面的日志需要采用以下格式才能被 AWS 云观察日志获取

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

所以要让 AWS cloudwatch 日志处理我的紧凑型 json 日志,我需要显式提取时间戳并将其放在每个日志之前?还是 AWS 不提供紧凑的 json 格式日志?或任何其他解决方法,请

我已经搜索了这个,但找不到任何有用的信息。提前非常感谢。

【问题讨论】:

  • 您好,我们遇到了同样的问题,您得到答案了吗?谢谢!
  • @NachoColl,很遗憾没有。很抱歉,但我仍然没有答案。
  • 嗨,这个有什么更新吗?我面临同样的问题:-(
  • @Bashir 不幸的是:(
  • 嗨@Parashuram,你解决这个问题了吗?

标签: amazon-cloudwatch amazon-cloudwatchlogs


【解决方案1】:

如果我们可以更改 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",

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多