其实我本意是想要实现如下需求:
logstash的插入数据到elasticsearch的时候,先从elasticsearch里去查数据,查的时候,字段都是固定,字段值从grok拆分message里字段得到,如果查到则不写入。
但是实际上,遇到很多问题
比如
urldecode {}
grok {
match => ["message","\s*\"(?<clientip>(.*?)?)\"\s+(.*)\s+\"(?<username>(.*?)?)\"\s+\"(?<userid>(\S+)?)\""]
}
elasticsearch {
hosts=>["127.0.0.1:9200/abc/cde/"]
query=>"username:%{[username]}"
fields => {"ida"=>"userid"}
sort=>"_id:desc"
}
居然报错
{"type":"parse_exception","reason":"Cannot parse 'username:%{username}'
一头雾水啊。。
这个logstash-filter-elasticsearch到底要怎么用,官方的插件文档真的是好粗略啊
logstash的插入数据到elasticsearch的时候,先从elasticsearch里去查数据,查的时候,字段都是固定,字段值从grok拆分message里字段得到,如果查到则不写入。
但是实际上,遇到很多问题
比如
urldecode {}
grok {
match => ["message","\s*\"(?<clientip>(.*?)?)\"\s+(.*)\s+\"(?<username>(.*?)?)\"\s+\"(?<userid>(\S+)?)\""]
}
elasticsearch {
hosts=>["127.0.0.1:9200/abc/cde/"]
query=>"username:%{[username]}"
fields => {"ida"=>"userid"}
sort=>"_id:desc"
}
居然报错
{"type":"parse_exception","reason":"Cannot parse 'username:%{username}'
一头雾水啊。。
这个logstash-filter-elasticsearch到底要怎么用,官方的插件文档真的是好粗略啊
1 个回复
leighton_buaa
赞同来自: