FileBeat中的多行模式

时间:2017-04-24 08:29:28

标签: elasticsearch kibana filebeat

我使用Filbeat进行日志聚合,将日志记录到Kibana。以下是我的错误消息,需要定向到Kibana:

    2017-04-17 15:45:47,154 [JCO.ServerThread-8] ERROR com.webservice.AxisWebServiceClient - Client error
    2017-04-17 15:45:47,154 [JCO.ServerThread-8] ERROR com.webservice.AxisWebServiceClient - The XML request is invalid. Fix the request and resend.
310,273,990
310,292,500
360,616,489
    2017-04-04 12:47:09,362 [JCO.ServerThread-3] INFO  com.app.Listener - End RFC_CALCULATE_TAXES_DOC
    2017-04-04 12:47:09,362 [JCO.ServerThread-3] DEBUG com.Time - RFC_CALCULATE_TAXES_DOC,DEC[2],Total Time,39

我只想要 2017-04-17 15:45:47,154 [JCO.ServerThread-8] ERROR 以及错误信息下面的行发送给Kibana,但我确实得到了INFO部分也是

下面是filbeat.yml文件

filebeat:
  prospectors:
    -
      paths:
       - /apps/global/vertex/SIC_HOME_XEC/logs/sic.log
      input_type: log
      exclude_lines: ['^INFO']
      #include_lines: 'ERROR'
      multiline:
        pattern: '^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3}\s\[[A-Za-z0-9.-]*\]\s[E]RROR'
        negate: true
        match: after

请求退伍军人帮助仅使用正则表达式选择ERROR消息模式。

1 个答案:

答案 0 :(得分:3)

要将错误消息作为一个组提取,您需要修改正则表达式,如下所示:

^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3}\s\[[A-Za-z0-9.-]*\]\sERROR (\w.+)

说明:

(\w.+)

这将创建一个包含所有字符和点字符的组,用于捕获错误消息。