2016-06-02 24 views
8

Ottengo sopra l'errore di analisi dei mapper su Elasticsearch durante l'indicizzazione del log da filebeat.Elasticsearch: nessun gestore per tipo [parola chiave] dichiarato sul campo [nome host]

Ho provato entrambi Filebeat -> Elasticserach e Filebeat -> Logstash -> approccio Elasticsearch.

ho seguito le loro documentazioni, ho installato filebeat modello secondo istruito e verificato da Loading the Index Template in Elasticsearch | Filebeat Reference

mio elasticsearch è normalmente lavorando bene con la mia altra indicizzazione dei dati e li ho testato su Kibana. È una finestra mobile ufficiale Docker Hub | Elasticsearch installazione.

Cercati su Google molto senza fortuna, quindi qualsiasi aiuto è apprezzato.

UPDATE 1:

versione ES: 2.3.3 (credo più recente)

file modello è quello predefinito fornito con filebeat.

{ 
    "mappings": { 
    "_default_": { 
     "_all": { 
     "norms": false 
     }, 
     "dynamic_templates": [ 
     { 
      "fields": { 
      "mapping": { 
       "ignore_above": 1024, 
       "type": "keyword" 
      }, 
      "match_mapping_type": "string", 
      "path_match": "fields.*" 
      } 
     } 
     ], 
     "properties": { 
     "@timestamp": { 
      "type": "date" 
     }, 
     "beat": { 
      "properties": { 
      "hostname": { 
       "ignore_above": 1024, 
       "type": "keyword" 
      }, 
      "name": { 
       "ignore_above": 1024, 
       "type": "keyword" 
      } 
      } 
     }, 
     "input_type": { 
      "ignore_above": 1024, 
      "type": "keyword" 
     }, 
     "message": { 
      "norms": false, 
      "type": "text" 
     }, 
     "offset": { 
      "type": "long" 
     }, 
     "source": { 
      "ignore_above": 1024, 
      "type": "keyword" 
     }, 
     "type": { 
      "ignore_above": 1024, 
      "type": "keyword" 
     } 
     } 
    } 
    }, 
    "order": 0, 
    "settings": { 
    "index.refresh_interval": "5s" 
    }, 
    "template": "filebeat-*" 
} 

UPDATE 2: Hai ragione, vedere

#/usr/share/filebeat/bin/filebeat --version filebeat version 5.0.0-alpha2 (amd64), libbeat 5.0.0-alpha2

Anche se questo sta postando log di Apache per logstash. Ma non riesco a ottenere questo registro vhost_combined in formato diritto

sub1.example.com:443 1.9.202.41 - - [03/Jun/2016:06:58:17 +0000] "GET /notifications/pendingCount HTTP/1.1" 200 591 0 32165 "https://sub1.example.com/path/index?var=871190" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"

"message" => "%{HOSTNAME:vhost}\:%{NUMBER:port} %{COMBINEDAPACHELOG}"

+0

'keyword' è un [nuovo tipo di dati] (https://www.elastic.co/guide/en/elasticsearch/reference/master/keyword.html) in ES 5 e non ancora supportato in ES 2. Quale la versione di ES hai e come appare il tuo modello di filebeat? – Val

+0

aggiunto il modello e le informazioni sulla versione per te. @Val – rayhan

risposta

14

Non è possibile utilizzare "type": "keyword" con ES 2.3.3 dato che è un nuovo tipo di dati in ES 5 (attualmente in alpha3)

è necessario sostituire tutti quegli eventi con

"type": "string", 
"index": "not_analyzed" 

È necessario utilizzare 01 Invece.

+0

L'ho già capito dal tuo ultimo commento e ora le cose stanno andando bene su ES. Filebeat documento ufficiale dovrebbe menzionare questa informazione molto critica come ES 2.3.3 è ancora versione ufficiale in doc. – rayhan

+1

Quale versione di filebeat hai e come l'hai installata? Ho l'ultimo, cioè [1.2.3 e il file 'filebeat-template.json'] (https://github.com/elastic/beats/blob/1.2/filebeat/etc/filebeat.template.json) funziona perfettamente con ES 2.3.3, cioè non c'è "" tipo ":" parola chiave "' in esso. – Val

+0

Ho installato filebeat dal loro documento ufficiale. Hanno spedito il modello es2 di cui sopra insieme a filebeat.template.json nella directory/etc/filebeat /. Ho appena cancellato il vecchio modello e inserito un nuovo modello. Questa versione non ha la parola chiave type. – rayhan