如何在ELK中的字段内解析IP

时间:2018-09-28 14:18:50

标签: csv logstash kibana firewall elastic-stack

我正在尝试自动化/简化查看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

我的目标是通过解析每个字段(用于子网和/或IP地址)并在ELK中导入此数据,并在可能的情况下添加一个包含每个字段的顺序字段(IP_Source1,IP_Destination2等)。

据您所知,这可能吗?怎么样?

感谢您可能提供的任何提示

1 个答案:

答案 0 :(得分:0)

您可以使用输入作为文件来创建logstash配置。然后使用第一个csv过滤器。 CSV过滤器应如下所示。

filter {
    csv {
        columns => ["source", "destination", "service", "action", "comment"]
        separator => ";"
    }
}

下一个过滤器将是红宝石过滤器。

filter { 
    ruby { 
       code => "
          arr = event.get(source).split('')
          arr.each.with_index(1) do |a, index|
               event.set(ip_source+index, a)
          end
       "
    }
}

最终将输出到elasticsearch。

我尚未测试代码。但我希望这能给您很好的提示。