通过应用带有Logstash的正则表达式添加新字段
我想通过在名为“referer”的字段上应用正则表达式来添加一个新字段。因此,目标是在正则表达式匹配的基础上创建一个新字段! 这是我的推荐人的一个例子:通过应用带有Logstash的正则表达式添加新字段,logstash,kibana,elastic-stack,logstash-grok,logstash-configuration,Logstash,Kibana,Elastic Stack,Logstash Grok,Logstash Configuration,我想通过在名为“referer”的字段上应用正则表达式来添加一个新字段。因此,目标是在正则表达式匹配的基础上创建一个新字段! 这是我的推荐人的一个例子: http://staticftv-a.akamaihd.net/player/bower_components/player_flash/dist/FranceTVNVPVFlashPlayer.akamai-05bcfb8a5a233afa06de66e8c03d6642.swf 我想要一个新的字段,只包含staticftv-a.akama
http://staticftv-a.akamaihd.net/player/bower_components/player_flash/dist/FranceTVNVPVFlashPlayer.akamai-05bcfb8a5a233afa06de66e8c03d6642.swf
我想要一个新的字段,只包含staticftv-a.akamaihd.net
这是我的日志存储配置:
input {
file {
path => "/home/ec2-user/AggregateByReferer.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
columns => ['session_number', 'referer', 'request_number_total']
}
grok {
match => { "message" => "%{URI:referer}" }
}
}
output {
elasticsearch {
index => "referer"
}
}
有了这段代码,“message”字段给了我一个奇怪的内容。这是Kibana的结果:
怎么办?谢谢 我刚刚在模式文件中获得了
regex
模式:
它实际给出的值为/staticftv-a.akamaihd.net
您可以在grok过滤器中使用它,如下所示:
grok {
match => {
"message" => "%{URI:referer}" <-- the value looks like /staticftv-a.akamaihd.net
}
}
然后您可以简单地用新值覆盖现有消息:
grok {
match => {
overwrite => ["message"]
}
}
这个。我不确定这是否是提取上述所需值的有效方法。但希望这有帮助
mutate {
gsub => [
"referer", "/", "",
]
}
grok {
match => {
overwrite => ["message"]
}
}