我正在尝试使用logstash将csv导入elasticsearch。我在 csv 中有一个字段是 IP:Port 对。我想拆分 IP 和端口,并通过 logstash 配置文件将它们分配给两个新密钥。
我查看了 kv ,但 kv 似乎需要字符串中的键和值对。我的只有价值。
样本 csv 数据:
hostname1,172.20.28.11:8080,proxy_web,false
hostname2,172.20.28.20:443,web_https,false
在上述情况下,我已经将第二个字段映射为“IP_Port”(使用 csv=> 列)现在,我想将 172.20.28.11:8080 拆分为 IP=172.20.28.11 和 port=8080(key=IP,value= 172.20.28.11) 等端口。然后将 IP 的数据类型更改为“ip 数据类型”。
之后,如果我想转换提取的 IP 并使用它进行地理映射,我可以使用以下代码段包含 IP 到 geoip 的转换。
geoip {
source => "Source IP"
target => "geoip"
database => "/etc/logstash/GeoLiteCity.dat"
add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ]
}
mutate {
convert => [ "[geoip][coordinates]", "float"]
}
对此有何建议?