【问题标题】:AWS logs agent setupAWS 日志代理设置
【发布时间】:2016-06-10 11:52:55
【问题描述】:

我们最近在我们的一台测试服务器上设置了 AWS 日志代理。我们的日志文件通常包含多行事件。例如,我们的日志事件之一是:

[10-Jun-2016 07:30:16 UTC] SQS Post Response: Array
(
    [Status] => 200
    [ResponseBody] => <?xml version="1.0"?><SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2009-02-01/"><SendMessageResult><MessageId>053c7sdf5-1e23-wa9d-99d8-2a0cf9eewe7a</MessageId><MD5OfMessageBody>8e542d2c2a1325a85eeb9sdfwersd58f</MD5OfMessageBody></SendMessageResult><ResponseMetadata><RequestId>4esdfr30-c39b-526b-bds2-14e4gju18af</RequestId></ResponseMetadata></SendMessageResponse>
)

日志代理参考文档说对此类日志使用“multi_line_start_pattern”选项。我们的 AWS Log 代理配置如下:

[httpd_info.log]
file = /var/log/httpd/info.log*
log_stream_name = info.log
initial_position = start_of_file
log_group_name = test.server.name
multi_line_start_pattern = '(\[)+\d{2}-[a-zA-Z]{3}+-\d{4}'

但是,日志代理报告上述事件和类似事件时会中断。向 CloudWatch Logs 报告的方式如下:

事件一:

[10-Jun-2016 11:21:26 UTC] SQS Post Response: Array

事件 2:

( [Status] => 200 [ResponseBody] => <?xml version="1.0"?><SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2009-02-01/"><SendMessageResult><MessageId>053c7sdf5-1e23-wa9d-99d8-2a0cf9eewe7a</MessageId><MD5OfMessageBody>8e542d2c2a1325a85eeb9sdfwersd58f</MD5OfMessageBody></SendMessageResult><ResponseMetadata><RequestId>4esdfr30-c39b-526b-bds2-14e4gju18af</RequestId></ResponseMetadata></SendMessageResponse>

事件 3:

)

尽管它只是一个事件。有什么线索吗?

【问题讨论】:

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


    【解决方案1】:

    我认为您需要在 awslogs.conf 中添加以下内容

    datetime_format = %d-%b-%Y %H:%M:%S UTC
    time_zone = UTC
    multi_line_start_pattern = {datetime_format}
    

    http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html

    multi_line_start_pattern

    指定用于识别日志消息开始的模式。日志消息由匹配模式的行和不匹配模式的任何后续行组成。有效值为正则表达式或 {datetime_format}。使用 {datetime_format} 时,应指定 datetime_format 选项。默认值为“^[^\s]”,因此任何以非空白字符开头的行都会关闭上一条日志消息并开始新的日志消息。

    如果该日期时间格式不起作用,您需要更新正则表达式以实际匹配您的特定日期时间。我不认为您上面列出的那个实际上适用于您给定的格式。

    你可以试试这个:

    [\d{2}-[\w]{3}-\d{4}\s{1}\d{2}:\d{2}:\d{2}\s{1} \w+]

    匹配

    [2016 年 6 月 10 日 11:21:26 UTC]

    请看这里:http://www.regexpal.com/?fam=96811

    完成后,重新启动服务并检查其解析是否正确。

    $ sudo service awslogs 重启

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多