Logstash de ne pas analyser json
Quand je vois les résultats dans Kibana, je vois qu'il n'y a pas de champs de JSON, plus de plus de, message
champ contient uniquement des "status" : "FAILED"
.
Est-il possible d'analyser les champs de json et de les montrer dans Kibana?
J'ai de configuration suivants:
input {
file {
type => "json"
path => "/home/logstash/test.json"
codec => json
sincedb_path => "/home/logstash/sincedb"
}
}
output {
stdout {}
elasticsearch {
protocol => "http"
codec => "json"
host => "elasticsearch.dev"
port => "9200"
}
}
Et suivants du fichier JSON:
[{"uid":"441d1d1dd296fe60","name":"test_buylinks","title":"Testbuylinks","time":{"start":1419621623182,"stop":1419621640491,"duration":17309},"severity":"NORMAL","status":"FAILED"},{"uid":"a88c89b377aca0c9","name":"test_buylinks","title":"Testbuylinks","time":{"start":1419621623182,"stop":1419621640634,"duration":17452},"severity":"NORMAL","status":"FAILED"},{"uid":"32c3f8b52386c85c","name":"test_buylinks","title":"Testbuylinks","time":{"start":1419621623185,"stop":1419621640826,"duration":17641},"severity":"NORMAL","status":"FAILED"}]
OriginalL'auteur avasin | 2015-02-26
Vous devez vous connecter pour publier un commentaire.
Oui. vous avez besoin d'ajouter un filtre pour votre config, quelque chose comme ça.
Il est décrit assez bien dans les docs ici
MODIFIER
Le json codec ne semble pas comme avoir un tableau passé en. Un seul élément fonctionne avec cette config:
D'entrée:
Logstash Résultat:
}
Maintenant avec un tableau:
Entrée
Résultat:
Cela ressemble à un bug dans le codec, pouvez-vous modifier vos messages à un objet plutôt qu'un tableau?
Je pense que le problème pourrait être que votre message est un tableau et le json codec attend un objet à la racine
wow, peut-être nous pouvons signaler ce un bug... de toute façon, vous aviez raison - filter est une solution. github.com/elasticsearch/logstash/issues/2702
Semble qu'ils en sont conscients, à partir de la source code: # TODO(sissel): Remarque, cela ne va pas réussir à gérer json listes # comme votre texte est " [ 1,2,3 ]' JSON.analyser vous donne un tableau (correctement) # qui n'est pas le fusionner dans une table de hachage. Si quelqu'un a besoin de cela, nous pouvons le réparer # plus tard.
pas de soucis, heureux de vous aider
OriginalL'auteur stringy05
Essayer le
json_lines
codec au lieu dejson
. Cela doit avoir été ajouté récemment. Dans votre cas particulier, vous aimerais tout d'abord souhaitez modifier votre sortie à partir d'une liste de json de retour à la ligne délimitée par json.http://logstash.net/docs/1.4.0/codecs/json_lines
OriginalL'auteur Banjer
Lecture dans un fichier contenant un tableau JSON est beaucoup plus difficile qu'elle ne devrait l'être. Ci-dessous est un travail de configuration de pipeline
OriginalL'auteur Nathan Reese