hangout icon indicating copy to clipboard operation
hangout copied to clipboard

请问有没有类似logstash的metadata的功能

Open mad1230 opened this issue 4 years ago • 5 comments

可以使用metadata做判断依据,写入的时候metadata是丢弃的,翻了一遍没看到

mad1230 avatar Jul 08 '20 08:07 mad1230

对Kafka 消息的数据加 Topic 等信息? gohangout 有这个功能. 考虑使用 Gohangout 吗?

childe avatar Jul 08 '20 09:07 childe

go不太熟悉,可以研究一下,不懂的地方请多指教

mad1230 avatar Jul 08 '20 09:07 mad1230

假设有一条报文(logstash版本),[2017-04-01 22:21:21] production.INFO: this is a test log message by leon 通过 grok { match => { "message" => "[%{TIMESTAMP_ISO8601:timestamp}] %{DATA:env}.%{DATA:log_level}: %{DATA:content}" } } 得到 { "env" => "production", "timestamp" => "2017-04-01 22:21:21", "log_level" => "INFO", "content" => "{"message":"[2017-04-01 22:21:21] production.INFO: this is a test log message by leon"}" } 在filter的过程中,我希望remove掉 env字段,但是在写入es的时候,我希望引用 到env这个字段,但是在前面我已经用remove把env字段给去掉了,output的时候就没办法引用到这个字段,hangout有没有办法实现 logstash是这么处理的 grok { match => { "message" => "[%{TIMESTAMP_ISO8601:timestamp}] %{DATA:[@metadata][env]}.%{DATA:[@metadata][log_level]}: %{DATA:content}" } }

if [@metadata][log_level] == "INFO"{ drop{}
}

output{ elasticsearch { hosts => ["127.0.0.1:9200"] index => "%{[@metadata][env]}-log-%{+YYYY.MM}" document_type => "_doc" } } 把env字段放入metadata里面,metadata在整个输入--》filter--》输出 过程中,只作为一些判断条件使用,在最后写入的时候,metadata是不会写到输入源

mad1230 avatar Jul 08 '20 11:07 mad1230

明白了, 目前没这个功能, 在写 ES 的时候, 会把所有字段都写进来. 可以考虑给用户配置, 可以过滤掉一些字段.

childe avatar Jul 08 '20 12:07 childe

Being scammed by your app

kalcc avatar Dec 24 '20 15:12 kalcc