2014-10-13 6 views
1

Я пытаюсь использовать Logstash для анализа и геолокации IP-адресов из источника Netflow, он работает, чтобы получить данные в Elasticsearch, но он не помещает информацию геоинформации , Вот мой конфигурационный файл, который я использую в logstashНе удается получить logstash для геоинформации из ввода Netflow

input { 
     udp { 
       host => localhost 
       port => 5555 
       codec => netflow 
     } 
} 

filter { 
     geoip { 
       target => "geoip" 
       source => "ipv4_dst_addr" 
       add_tag => ["geoip"] 
       add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}"$ 
       add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" $ 
     } 
} 

output { 
     stdout { } 
     elasticsearch { host => "127.0.0.1" } 
} 

Больше информации, которая может помочь, используя Logstash 1.4.2 и 1.3.4 Elasticsearch.

ответ

0

Любая удача в определении этого?

Если нет, обратите внимание, что вам нужно использовать мутацию для преобразования координат в поплавок.

Однако геоинформационный фильтр в Logstash 1.3 и выше добавляет поле местоположения напрямую, поэтому вам не придется использовать add_field, и вам даже не придется использовать конвертер. Если вы попробуете эти два решения, скажите мне, как это происходит. Спасибо.

Примечание стороны: Рекомендуемая версия для работы с Logstash 1.4.2 из Elasticsearch 1.1.1

+1

Я отказался от прямого Netflow на данный момент, и я использую Bro для ввода данных потока в Logstash и нашел хороший файл конфигурации, который добавляет данные геоинформации. Я планирую пересмотреть Netflow через неделю или около того, потому что мне нужно будет использовать этот формат ввода. Я попробую ваши предложения. Спасибо. –

0

Я только что провел некоторое время углубиться в это, и заканчивает тем, что что-то из-за ошибки в кодеке Netflow кода (в частности, в классе IP4Addr в netflow/util.rb).

Вы должны быть в состоянии работать вокруг этого с mutate фильтром, например:

filter { 
    mutate { 
     convert => { 
      "[netflow][ipv4_src_addr]" => "string" 
      "[netflow][ipv4_dst_addr]" => "string" 
     } 
    } 
    geoip { 
     source => "[netflow][ipv4_src_addr]" 
     target => "src_geoip" 
    } 
    geoip { 
     source => "[netflow][ipv4_dst_addr]" 
     target => "dst_geoip" 
    } 
} 

Я представил pull request to fix this properly, но в настоящее время, попробуйте этот конфиг.

Смежные вопросы