Не удается отфильтровать по geoip.location - PullRequest
0 голосов
/ 09 ноября 2018

Использование ELk 6.X Кажется, я не могу построить точки из-за того, что geoip.location не заполнен? Я также добавил шаблон, который, я надеюсь, правильный. Не эксперт, но я уверен, что мои очки не отображаются, потому что там нет данных.

Кибана 6.4.2 Logstash 6.4.2-1 Elasticsearch 6.4.2

После конфигов

input {
  udp {
    port => 9996
    codec => netflow {
      versions => [5, 7, 9, 10]
    }
    type => netflow
 }
}

filter {
  geoip {
    source => "[netflow][ipv4_src_addr]"
    target => "src_geoip"
    database => "/usr/share/GeoIP/GeoLite2-City.mmdb"
  }
  geoip {
    source => "[netflow][ipv4_dst_addr]"
    target => "dst_geoip"
    database => "/usr/share/GeoIP/GeoLite2-City.mmdb"
  }
}

выход

output {
  if [type] == "netflow" {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "logstash-%{+YYYY.MM.dd}"
    }
  } else {
  elasticsearch {
    hosts => ["localhost:9200"]
    sniffing => true
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}
}

Отображение похоже на

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

Template

{
  "logstash": {
    "order": 0,
    "version": 60001,
    "index_patterns": [
      "logstash-*"
    ],
    "settings": {
      "index": {
        "refresh_interval": "5s"
      }
    },
    "mappings": {
      "_default_": {
        "dynamic_templates": [
          {
            "message_field": {
              "path_match": "message",
              "match_mapping_type": "string",
              "mapping": {
                "type": "text",
                "norms": false
              }
            }
          },
          {
            "string_fields": {
              "match": "*",
              "match_mapping_type": "string",
              "mapping": {
                "type": "text",
                "norms": false,
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              }
            }
          }
        ],
        "properties": {
          "@timestamp": {
            "type": "date"
          },
          "@version": {
            "type": "keyword"
          },
          "geoip": {
            "dynamic": true,
            "properties": {
              "ip": {
                "type": "ip"
              },
              "location": {
                "type": "geo_point"
              },
              "latitude": {
                "type": "half_float"
              },
              "longitude": {
                "type": "half_float"
              }
            }
          }
        }
      }
    },
    "aliases": {}
  }
}

Мои индексы возвращаются с SRC или DST, но только ниже

#  dst_geoip.latitude               26.097
#  dst_geoip.location.lat           26.097
#  dst_geoip.location.lon           -80.181
...