Использование geopoint в Elasticsearch из Logstash

#elasticsearch #logstash #kibana #geoip

#elasticsearch #logstash #kibana #geoip

Вопрос:

Я хочу использовать geoip в стеке elk из docker. в соответствии с этой документацией я добавил config

https://www.elastic.co/blog/geoip-in-the-elastic-stack

это мой logstash.conf

 input {
  beats {
    port => 5044
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  geoip {
    source => "clientip"
  }
}

output {
  elasticsearch {
    hosts => "elasticsearch:9200"
    manage_template => false
    index => "logstash-%{ YYYY.MM.dd}"
  }
}
  

и я знаю, что должен добавить этот json в какое-то место. но я не знаю, где мне это сделать?

 "geoip"  : {
  "dynamic": true,
  "properties" : {
    "ip": { "type": "ip" },
    "location" : { "type" : "geo_point" },
    "latitude" : { "type" : "half_float" },
    "longitude" : { "type" : "half_float" }
  }
}
  

Ответ №1:

Ваш конвейер logstash в порядке. JSON, который вы пытаетесь добавить, — это отображение, которое автоматически генерируется logstash.

Учитывая, что вы используете Kibana с вашим кластером Elasticsearch :

 go to management -> index patern -> Create Index Pattern -> type "logstash-*" or a name that fits your need with this index -> select 
timestamp and hit "create index pattern".
  

Если на этом этапе вы не можете визуализировать данные geoip, возможно, IP-адреса, которые находятся в ваших данных, не имеют отношения к общедоступной области.
Вы можете попробовать свои IP-адреса здесь:https://www.maxmind.com/en/geoip-demo