logstash日志用于匹配多行日志

logstash显示单行日志很方便,但是多行日志怎么搞.

input {
        file {
                type =>"xxxxxx"
                path => ["/tmp/test/test.txt"]
                codec => multiline { 
                        pattern => "^%{TIMESTAMP_ISO8601} " 
                        negate => true 
                        what => previous 
                }
        }
}

日志格式如下是python的堆栈调用.每个日志必须是时间开始

2016-01-10 10:10:10,384 - Internal Server Error: /abcdef/testurl/
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
    response = xxxxxcallback(request, *callback_args, **callback_kwargs)
  File "/xxxxxxxxxxx/xxxxxxxxx/xxxxxxxxx/views.py", line 2750, in xxxxxxxxxxxx
    abcids = [[int(i) for i in idx.split('_')] for ids in xxxxids[0].split(',')]
IndexError: list index out of range

其实nginx的error日志同样可以使用这种方式,唯一需要注意的是第一列必须有个特定的东西,

multiline插件最重要的方面:

pattern 选项指定一个正则表达式。 事件匹配指定的正则表达式来确定是前一个事件的内容还是新的事件的内容。可以使用grok正则表达式的模板来配置该选项。
what 选项有两个选择值: previous 或者 next。 previous 值指定行匹配pattern选项的内容是上一行的一部分。 next 指定行匹配pattern选项的内容是下一行的一部分。* negate选项适用于multiline codec 行不匹配pattern选项指定的正则表达式。
该配置使用negate => true 选项来指定任何不是以时间戳开始的行属于前行。也就是不匹配pattern的行都属于前行的内容的一部分。
http://www.cnblogs.com/sl21100/p/5341428.html

详细解释可以看上面链接.

转载于:https://my.oschina.net/u/1538135/blog/681396

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值