logstash自定义正则表达式

半兽人 发表于: 2016-11-04   最后更新时间: 2016-11-22  
  •   0 订阅,542 游览

创建一个自定义的patterns,在logstash目录下创建一个patterns

> vim patterns

LOG_TIME (\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})

在patterns文本里写入正则表达式,该正则是匹配日志中的时间的。

然后启动执行

bin/logstash -e 'input{
        stdin{}
}
filter{
        grok{
          patterns_dir=>"./patterns"
          match => {
            "message" => "%{LOG_TIME:logtime}"
         }
        }
}
output{
        stdout{codec=>rubydebug}
}'

输入测试日志

[2016-11-01 16:48:24,946] [ERROR] c.b.t.biz.back.billing.BillingBiz 200 -- [f8b9e646-363e-4976-ac83-944a99e159ac] failed transferFee EXCEPTION :c.b.t.m.common.exception.FrontParamException: 错误码:BILLING_FAILED

返回:

{
       "message" => "[2016-11-01 16:48:24,946] [ERROR] c.b.t.biz.back.billing.BillingBiz 200 -- [f8b9e646-363e-4976-ac83-944a99e159ac] failed transferFee EXCEPTION :c.b.t.m.common.exception.FrontParamException: 错误码:BILLING_FAILED",
      "@version" => "1",
    "@timestamp" => "2016-11-04T09:37:30.223Z",
          "host" => "linux21-49",
       "logtime" => "2016-11-01 16:48:24,946"
}

logtime里面是正则解析出来的日志,ok了。







发表于: 7月前   最后更新时间: 7月前   游览量:542
上一条: logstash合并java多行日志异常
下一条: ElasticSearch中根据查询结果删除数据(delete by query)
评论…

  • 评论…
    • in this conversation
      提问