0

Mon logstash config est quelque chose commeLogstash modèle sortie elasticsearch personnalisé ne fonctionne pas

if "user" in [tags] { 
     elasticsearch { 
      hosts => ["localhost:9200"] 
      action => "index" 
      index => "user-%{+YYYY.MM.dd}" 
      template => '/path/to/elastic-template.json' 
      flush_size => 50 
     } 
}  

Et le modèle JSON contient les lignes

"fields" : { 
       "{name}" : {"type": "string", "index" : "analyzed", "omit_norms" : true, "index_options" : "docs"}, 
       "{name}.raw" : {"type": "string", "index" : "not_analyzed", "ignore_above" : 256} 
       } 

Je suppose que le .raw peut être utilisé lors de la recherche ou de la génération de la visualisation.

Cependant, j'ai supprimé l'index existant et de reconstruire à nouveau, je peux voir les données, mais je ne trouve toujours pas le champ .raw soit les paramètres de Kibana, découvrez ou visualiser

Comment utiliser le .raw domaine?

+1

Pourquoi ne pas vous utilisez le modèle par défaut Logstash? Celui-là ajoute le champ 'raw'. Partagez le modèle complet. –

Répondre

0

Le modèle que vous avez publié n'est même pas valide JSON. Si vous souhaitez appliquer un champ raw comme dans not_analyzed vous devez le faire comme ceci:

"action" : { 
    "type" : "string", 
    "fields" : { 
     "raw" : { 
     "index" : "not_analyzed", 
     "type" : "string" 
    } 
    } 
} 

Cela va créer un champ action.raw.

0

J'ai rencontré le même problème. Je utilisé ES5.5.1 et logstash 5.5.1, ci-dessous est mon fichier modèle

{ 
    "template": "access_log", 
    "settings": { 
    "index.refresh_interval" : "5s" 
    }, 
    "mappings": { 
    "log": { 
     "properties":{ 
     "geoip":{ 
      "properties":{ 
      "location" : { 
       "type" : "geo_point", 
       "index": "false" 
      } 
      } 
     } 
     } 
    } 
    } 
}