拆分后按一定顺序连接字段值的 Logstash。
Logstash Joining Field values in certain order after split.
我正在尝试使用项目的 logstash 解析 appache 访问日志。
为了让elasticsearch搜索更高效,我想对域名进行逆向。
例如:
www.example.com 变为 com.example.www
我尝试使用 logstash mutate 插件拆分域名并反转它。按原样解析时,我得到一个字段
- 域名:"www.example.com"
使用下面的设置我得到以下结果:
设置:
mutate{
split => {"domainname" => "."}
add_field => {"reversed_domainname" => ["%{[domainname][-1]}","%{[domainname][-2]}"]}
join => {"reversed_domainname" => "."}
}
结果:
域名=["www","example","com"]
reversed_domainname =[ "com", "example" ]
一切都按预期工作,直到我没有得到结果中看到的连接函数 com.example
如果我从连接中删除 reversed(将域名拆分为“.”并使用“.”连接它们,我会得到相同的结果。
www.example.com 变为 www.example.com
我怎样才能以相反的顺序加入字段,因为它显然应该有效。
对于 logstash Pre-5.x,尝试:
mutate{
split => {"domainname" => "."}
}
ruby {
code => "event['domainname'] = event['domainname'].reverse"
}
ruby 过滤器允许您执行 ruby 代码,使用内置函数反转数组。
超级笨蛋,但使用中间变量解决了问题。不知道这是 ment 还是 bug。我使用下面的插件来解决我的问题。
mutate {
split => {"domainname" => "."}
}
ruby {
code => "
x = event['domainname']
event['reversed_domainname'] = x.reverse.join('.')
"
}
mutate{
join => {"domainname" => "."}
}
我正在尝试使用项目的 logstash 解析 appache 访问日志。
为了让elasticsearch搜索更高效,我想对域名进行逆向。 例如:
www.example.com 变为 com.example.www
我尝试使用 logstash mutate 插件拆分域名并反转它。按原样解析时,我得到一个字段
- 域名:"www.example.com"
使用下面的设置我得到以下结果:
设置:
mutate{
split => {"domainname" => "."}
add_field => {"reversed_domainname" => ["%{[domainname][-1]}","%{[domainname][-2]}"]}
join => {"reversed_domainname" => "."}
}
结果:
域名=["www","example","com"]
reversed_domainname =[ "com", "example" ]
一切都按预期工作,直到我没有得到结果中看到的连接函数 com.example
如果我从连接中删除 reversed(将域名拆分为“.”并使用“.”连接它们,我会得到相同的结果。
www.example.com 变为 www.example.com
我怎样才能以相反的顺序加入字段,因为它显然应该有效。
对于 logstash Pre-5.x,尝试:
mutate{
split => {"domainname" => "."}
}
ruby {
code => "event['domainname'] = event['domainname'].reverse"
}
ruby 过滤器允许您执行 ruby 代码,使用内置函数反转数组。
超级笨蛋,但使用中间变量解决了问题。不知道这是 ment 还是 bug。我使用下面的插件来解决我的问题。
mutate {
split => {"domainname" => "."}
}
ruby {
code => "
x = event['domainname']
event['reversed_domainname'] = x.reverse.join('.')
"
}
mutate{
join => {"domainname" => "."}
}