您的位置:首页 > 其它

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

2014-06-23 20:03 537 查看
1.合并日志

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

filter {

multiline {

type => "type" #类型

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

negate =>
boolean

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

}

}

举例:

filter

{

multiline

{

pattern => "^\s+"

what => "previous"

}

}

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

2. 邮件

if [nginx_status] != "200"

{

exec

{

command => "echo '%{@timestamp} %{clientip}: %{message}' | mail -slogstash_errorXXXX@XXX.com"

}

}

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: GET、request: /index.html、bytes:
15824 、duration: 0.043
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐