Logstash系列-- metadata临时字段

前言

今天有人问了一个问题,在输出es追加后缀的时候,想用数据里面的字段,但是又不想保存改字段到es。

正文

这里用到的是metadata,
官网其实有一个示例:
是我们需要把数据入到不同的索引中,同时我们也不想在es里多保存一个字段,

filter {
    if [log_type] in [ "test", "staging" ] {
        mutate { add_field => { "[@metadata][target_index]" => "test-%{+YYYY.MM}" } }
    } else if [log_type] == "production" {
        mutate { add_field => { "[@metadata][target_index]" => "prod-%{+YYYY.MM.dd}" } }
    } else {
        mutate { add_field => { "[@metadata][target_index]" => "unknown-%{+YYYY}" } }
    }
}
output {
    elasticsearch {
        index => "%{[@metadata][target_index]}"
    }
}

当然也可以直接用在正则获取字段时,如下

filter {
    grok {
	  match => {"message" => "%{YEAR:[@metadata][year]}"}
	}
}
output {
    elasticsearch {
        index => "test-%{year}"
    }
}

想要了解更多,可以通过 elk相关知识地图 来找到你想要了解的部分进行查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值