Как разобрать IP внутри полей в ELK - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь автоматизировать / упростить процедуру проверки правил брандмауэра в 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

Моя цель - импортировать эти данные в ELK, анализируя каждое поле (для подсети и / или IP-адреса) и, если возможно,добавьте последовательное поле (IP_Source1, IP_Destination2 и т. д.), содержащее каждое из них.

Возможно ли это, насколько вам известно?Как?

Спасибо за любую подсказку, которую вы можете предоставить

1 Ответ

0 голосов
/ 29 сентября 2018

Вы можете создать конфигурацию 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
       "
    }
}

Финал будет выведен на эластичный поиск.

Я не проверял код.Но я надеюсь, что это даст вам хорошие советы.

...