CloudWatch自定义日志无法正确呈现

时间:2019-05-31 14:02:51

标签: amazon-web-services iis logging amazon-cloudwatch

当我尝试将IIS或MSSQL日志推送到CloudWatch时,我可以看到服务器中的日志正在出现,但是它们在CW的单行中,就像在服务器中,它们是带有不同时间戳的两个不同事件

我曾经用"multi_line_start_pattern": "yyyy-MM-dd HH:mm:ss"吓跑了,但这不能解决我的问题

CloudWatch Json文件:

{
        "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch",
        "Id": "IISLogs",
        "Parameters": {
          "CultureName": "en-US",
          "Encoding": "UTF-8",
          "Filter": "",
          "LineCount": "5",
          "LogDirectoryPath": "C:\\logfiles",
          "TimeZoneKind": "UTC",
          "TimestampFormat": "\\%Y-%m-%d %H:%M:%S\\"  (also tried  "yyyy-MM-dd HH:mm:ss" format)
        }
      },


{
        "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch",
        "Id": "CloudWatchIISLogs",
        "Parameters": {
          "LogGroup": "/application/iis",
          "LogStream": "{instance_id}",
          "Region": "eu-west-1",
          "multi_line_start_pattern": "yyyy-MM-dd HH:mm:ss"
        }
      }

在流量下:

“((IISLogs),CloudWatchIISLogs”,

我在CW中看到的日志:我看不到它们在每个结束行之间都没有区别,但是在IIS服务器中,我确实在下一行中分开了日志。对于MSSQL同样如此。

我希望与服务器/实例中提到的日志一样,将日志推送到CW中,如下所示:

在时间之下:我有时间戳记:

消息下方:此消息位于单个消息下,其中包含多个消息(user1的3个事件)

2019-05-31 12:19:42 ::1 GET / - 80 user ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko - 200 0 0 2032019-05-31 12:19:43 ::1 GET / - 80 user1 ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko - 200 0 0 152019-05-31 12:19:43 ::1 GET /libs/jquery-1.7.1.min.js - 80 user1 ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko http://localhost/ 304 0 0 02019-05-31 12:19:43 ::1 GET /libs/canvg/canvg.js - 80 user1 ::1 

状态代码正在与下一行(日期/时间)合并,因为日志未正确显示/拆分。

任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

我得到了答案,这是由于我们正在使用的代理-SSM,将其迁移到CW代理后已解决。