如何在 ELK 的字段中解析 IP
How to parse IP within fields in ELK
我正在尝试 automate/ease 审查 ELK(ElasticSearch、Logstash、Kibana)中的防火墙规则的程序。
我有一些从 CSV 中获取的数据,其结构如下:
Source;Destination;Service;Action;Comment
10.0.0.0/8 172.16.0.0/16 192.168.0.0/24 23.2.20.6;10.0.0.1 10.0.0.2 10.0.0.3;udp:53
tcp:53;accept;No.10: ID: INC0000000001
我的objective是通过解析每个字段(对于子网and/or IP地址)在ELK中导入这些数据,如果可能的话,添加一个顺序字段(IP_Source1,IP_Destination2,etc) 包含每一个。
据您所知,这可能吗?怎么样?
感谢您提供的任何提示
您可以创建一个以文件形式输入的 logstash 配置。然后使用第一个 csv 过滤器。 CSV 过滤器应如下所示。
filter {
csv {
columns => ["source", "destination", "service", "action", "comment"]
separator => ";"
}
}
下一个过滤器需要 ruby 过滤器。
filter {
ruby {
code => "
arr = event.get(source).split('')
arr.each.with_index(1) do |a, index|
event.set(ip_source+index, a)
end
"
}
}
最终会输出到elasticsearch。
我没有测试代码。但我希望这能给你一些好的提示。
我正在尝试 automate/ease 审查 ELK(ElasticSearch、Logstash、Kibana)中的防火墙规则的程序。 我有一些从 CSV 中获取的数据,其结构如下:
Source;Destination;Service;Action;Comment
10.0.0.0/8 172.16.0.0/16 192.168.0.0/24 23.2.20.6;10.0.0.1 10.0.0.2 10.0.0.3;udp:53
tcp:53;accept;No.10: ID: INC0000000001
我的objective是通过解析每个字段(对于子网and/or IP地址)在ELK中导入这些数据,如果可能的话,添加一个顺序字段(IP_Source1,IP_Destination2,etc) 包含每一个。
据您所知,这可能吗?怎么样?
感谢您提供的任何提示
您可以创建一个以文件形式输入的 logstash 配置。然后使用第一个 csv 过滤器。 CSV 过滤器应如下所示。
filter {
csv {
columns => ["source", "destination", "service", "action", "comment"]
separator => ";"
}
}
下一个过滤器需要 ruby 过滤器。
filter {
ruby {
code => "
arr = event.get(source).split('')
arr.each.with_index(1) do |a, index|
event.set(ip_source+index, a)
end
"
}
}
最终会输出到elasticsearch。
我没有测试代码。但我希望这能给你一些好的提示。