grok logstash配置,使用grok将日志文件名添加为logstash中的字段

I'm using Grok & Logstash to send access logs from Nginx to Elastic search. I'm giving Logstash all my access logs (with a wildcard, works well) and I would like to get the filename (some part of it, to be exact) and use it as a field.

My config is as follows :

input {

file {

path => "/var/log/nginx/*.access.log"

type => "nginx_access"

}

}

filter {

if [type] == "nginx_access" {

grok {

match => { "message" => "%{COMBINEDAPACHELOG}" }

match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:app}.access.log" }

add_field => { "app" => "%{app}" }

}

}

}

output{

# whatever

}

But it doesn't seem to work : the app field is added, but has a value of %{app} (not replaced).

I tried different things but to no avail. I may be missing something ... Any ideas ?

Thanks a lot

解决方案

Ok, found it. grok breaks on match by default. So the first match being good, it skips the second one.

I solved it like that :

filter {

if [type] == "nginx_access" {

grok {

match => { "message" => "%{COMBINEDAPACHELOG}" }

match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:app}.access.log" }

break_on_match => false

}

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值