1

Ich versuche eine Kachelkarte auf Kibana zu erstellen, mit GEO Positionspunkten. Aus irgendeinem Grund, wenn ich versuche, um die Karte zu erstellen, erhalte ich die folgende Meldung auf Kibana:ELK - Kibana erkennt kein geo_point Feld

Nein Kompatible Fields: Die „Protokolle“ Indexmuster enthält keine Typen jeder folgende Feld: geo_point

Meine Einstellungen:
Logstash (Version 2.3.1):

filter { 
    grok { 
     match => { 
      "message" => "MY PATTERN" 
     } 
    } 

    geoip { 
     source => "ip" 
     target => "geoip" 
     add_field => [ "location", "%{[geoip][latitude]}, %{[geoip][longitude]}" ] #added this extra field in case the nested field is the problem 
    } 
} 
output { 
    stdout { codec => rubydebug } 
    elasticsearch { 
     hosts => ["localhost:9200"] 
     index => "logs" 
    } 
} 

Wenn Log-Eingang ankommt, kann ich es es sehen analysieren, wie soll ich tun, um die GeoIP Daten für einen bestimmten IP erhalten:

"geoip" => { 
      "ip" => "XXX.XXX.XXX.XXX", 
      "country_code2" => "XX", 
      "country_code3" => "XXX", 
      "country_name" => "XXXXXX", 
      "continent_code" => "XX", 
      "region_name" => "XX", 
       "city_name" => "XXXXX", 
       "latitude" => XX.0667, 
       "longitude" => XX.766699999999986, 
       "timezone" => "XXXXXX", 
     "real_region_name" => "XXXXXX", 
       "location" => [ 
      [0] XX.766699999999986, 
      [1] XX.0667 
     ] 
    }, 
    "location" => "XX.0667, XX.766699999999986" 

Elasticsearch (Version 2.3.1):
GET/logs/_mapping kehrt:

{ 
    "logs": { 
     "mappings": { 
     "logs": { 
      "properties": { 
       "@timestamp": { 
        "type": "date", 
        "format": "strict_date_optional_time||epoch_millis" 
       }, 
       . 
       . 
       . 
       "geoip": { 
        "properties": { 
        . 
        . 
        . 
        "latitude": { 
         "type": "double" 
        }, 
        "location": { 
         "type": "geo_point" 
        }, 
        "longitude": { 
         "type": "double" 
        } 
        } 
       }, 
       "location": { 
        "type": "geo_point" 
       } 
      } 
     } 
     } 
    } 
} 

Kibana (Version 4.5.0):
ich alle Daten sehen und alles scheint in Ordnung zu sein. Nur wenn ich gehe zu "Visualisieren" -> "Tile Karte" -> "Von einer neuen Suche" -> "Geo-Koordinaten", bekomme ich diese Fehlermeldung:

No Compatible Fields: The "logs" index pattern does not contain any of the following field types: geo_point 

Auch tho ich in Elasticsearch Mapping sehen Der Standorttyp ist geo_point. Was fehlt mir?

Antwort

1

Das Problem gefunden! Ich nannte den Index "Protokolle". habe den Indexnamen in "logstash-logs" geändert (Logstash-Präfix benötigt) und alles hat angefangen zu funktionieren!

+1

Das ist eine schnelle Lösung, behebt das Problem jedoch nicht, wenn Ihr Indexname anders lautet. Es ist möglich, aber Sie müssen eine Vorlage hinzufügen - Details, von denen ich nicht ganz sicher bin. –

+1

interessant ... wenn Sie nur aus einem Index namens "logs" gelesen haben, frage ich mich, warum Kibana das Indexmuster "logstash-logs" benötigt, um Ihre Daten korrekt zu lesen. Scheint wie ein Fehler oder eine nicht offensichtliche Funktionalität. – Shuklaswag