LogStash日志收集系统调研(三) -- LogStash常用配置

1.合并日志

部分日志在打印的时候由于格式问题分成多行打印的,但是实际上是一条日志,需要合并成一行显示。可以通过filter中的multiline

filter {

  multiline {

    type => "type"   #类型

    pattern => "pattern, aregexp" #参数,也可以认为是字符,有点像grep ,如果符合什么字符就交给下面的 what去处理

    negate => boolean

    what => "previous" or "next" #这个是符合上面pattern 的要求后具体怎么处理,处理方法有两种,合并到上面一条日志或者下面的日志

  }

}

举例:

扫描二维码关注公众号,回复: 551595 查看本文章

filter

{

    multiline

    {

        pattern => "^\s+"

        what => "previous"

    }

}

以上配置说明,以空格开始的行都合并到上一行。

2. 邮件

if [nginx_status] != "200"

{

    exec

    {

        command => "echo '%{@timestamp} %{clientip}: %{message}' | mail -slogstash_error [email protected]"

    }

}

3.删除多余行(drop)

 if [message] =~ /^[\s]*$/

 {

        drop {}

 }

以上配置为删除空白行。

4.结构化日志

对于格式固定的日志,可以使用filter中的grok对原日志进行结构化处理并解析出自己需要的信息,比如日志内容如下:

55.3.244.1 GET /index.html 15824 0.043

filter

{

     grok {

         match => [ "message", "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" ]

} }

通过该filter处理后,在输出的日志中就多出了一些额外的fields.

client: 55.3.244.1  method: GETrequest: /index.htmlbytes: 15824 duration: 0.043

猜你喜欢

转载自xiajs.iteye.com/blog/2098571