web-dev-qa-db-fra.com

Elasticsearch: aucun gestionnaire de type [mot-clé] déclaré dans le champ [nom d'hôte]

J'obtiens une erreur d'analyse du mappeur sur Elasticsearch lors de l'indexation du journal à partir du battement de fichier.

J'ai essayé à la fois Filebeat -> Elasticserach et Filebeat -> Logstash -> Elasticsearch.

J'ai suivi leurs propres documentations, j'ai installé le modèle de battement de fichier selon les instructions et vérifié à partir de Chargement du modèle d'index dans Elasticsearch | Référence de battement de fichier

Mon elasticsearch fonctionne normalement bien avec mes autres indexations de données et je les ai testées sur Kibana. C'est un docker officiel Docker Hub | Elasticsearch installation.

Googlé beaucoup sans aucune chance donc, toute aide est appréciée.

MISE À JOUR 1:

Version ES: 2.3.3 (je crois la dernière)

Le fichier modèle est la valeur par défaut livrée avec 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-*"
}

MISE À JOUR 2: Vous avez raison, voir

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

Bien que cela affiche le journal Apache dans logstash. Mais je ne peux pas obtenir ce journal vhost_combined au bon format

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}"

13
rayhan

Vous ne pouvez pas utiliser "type": "keyword" avec ES 2.3.3 car il s'agit d'un nouveau type de données dans ES 5 (actuellement en alpha3)

Vous devez remplacer toutes ces occurrences par

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

Vous devez utiliser filebeat.template-es2x.json à la place.

20
Val