1

我正在尝试使用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"] 
}                 

对此有何建议?

4

0 回答 0