LogStash日志收集系统调研(三) -- LogStash常用配置
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_error XXXX@XXX.com"
}
}
3.删除多余行(drop)
if =~ /^[\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
页:
[1]