Hi folks, using ELK 5.6.16.
I'm attempting to geoip iptables logs. I'm seeing geoip fields being populated, but tags field shows _geoip_lookup_failure as well as the tags I apply in my grok.
Input is provided by filebeat with document_type set to dawvpn-iptables.
Filter:
filter {
  if [document_type] == "dawvpn-iptables" {
	grok {
	  match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} kernel: '%{USERNAME:ipt_rule}: 'IN=ens3 OUT= MAC=%{DATA} SRC=%{IP:ipt_src} DST=%{IP:ipt_dst} LEN=%{INT:ipt_len:int} %{GREEDYDATA} PROTO=%{WORD:ipt_proto} SPT=%{INT:ipt_spt} DPT=%{INT:ipt_dpt} %{GREEDYDATA}"
      }
	add_tag => [ "DAWVPN_IPT","DAWVPN_%{ipt_rule}" ]
    }
  date {
    match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
  geoip {
	source => "ipt_src"
	target => "geoip"
	database => "/etc/logstash/GeoLite2-City_20171003/GeoLite2-City.mmdb"
	add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
	add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}"  ]
  }
  mutate {
	convert => [ "[geoip][coordinates]", "float"]
  }
}
JSON ouput of parsed event:
{
  "_index": "dawvpn-iptables-2019.08.14",
  "_type": "log",
  "_id": "AWyRxgOrXUAjfYImHJWh",
  "_version": 1,
  "_score": null,
  "_source": {
    "geoip": {
      "timezone": "Europe/Rome",
      "ip": "217.61.20.209",
      "latitude": 43.4167,
      "coordinates": [
        11.8833,
        43.4167
      ],
      "continent_code": "EU",
      "city_name": "Arezzo",
      "country_name": "Italy",
      "country_code2": "IT",
      "country_code3": "IT",
      "region_name": "Province of Arezzo",
      "location": {
        "lon": 11.8833,
        "lat": 43.4167
      },
      "postal_code": "52100",
      "region_code": "AR",
      "longitude": 11.8833
    },
    "offset": 23328,
    "input_type": "log",
    "ipt_dpt": "22",
    "source": "/var/log/filebeat-dawvpn-iptables.log",
    "message": "Aug 13 22:25:35 daw kernel: 'TL0G_SSH: 'IN=ens3 OUT= MAC=00:16:3c:0e:7c:89:00:12:f2:91:b8:00:08:00 SRC=217.61.20.209 DST=xxx.xxx.xxx.xxx LEN=40 TOS=0x00 PREC=0x00 TTL=249 ID=54321 PROTO=TCP SPT=58282 DPT=22 WINDOW=65535 RES=0x00 SYN URGP=0 ",
    "type": "log",
    "ipt_src": "217.61.20.209",
    "tags": [
      "_geoip_lookup_failure",
      "DAWVPN_IPT",
      "DAWVPN_TL0G_SSH"
    ],
    "ipt_dst": "xxx.xxx.xxx.xxx",
    "ipt_proto": "TCP",
    "@timestamp": "2019-08-14T02:25:35.000Z",
    "syslog_hostname": "daw",
    "syslog_timestamp": "Aug 13 22:25:35",
    "@version": "1",
    "beat": {
      "name": "str002",
      "hostname": "str002",
      "version": "5.6.16"
    },
    "host": "str002",
    "ipt_rule": "TL0G_SSH",
    "ipt_spt": "58282",
    "document_type": "dawvpn-iptables",
    "ipt_len": 40
  },
  "fields": {
    "@timestamp": [
      1565749535000
    ]
  },
  "highlight": {
    "geoip.postal_code": [
      "@kibana-highlighted-field@52100@/kibana-highlighted-field@"
    ]
  },
  "sort": [
    1565749535000
  ]
}
There is no _grokparsefailure, the log message is successfully parsed by the grok configuration. The ipt_src field is populated and apparently looked up by geoip based on the contents of the  geoip field data. Nothing in logstash logs indicating a problem either.
I'm at a loss to understand why all events are getting tagged _geoip_lookup_failure.
I have a very similar, working filter, using json input instead, and there are no _geoip_lookup_failure tags on those events.
What else can I look at to troubleshoot this?
Thanks
