Nous voulons implémenter la trace de demande de service en utilisant le plugin http de logstash au format JSON Array.Problème d'analyse de tableau json avec logstash
Nous obtenons l'erreur suivante lorsque vous essayez d'analyser le tableau JSON:
erreur:
:message=>"gsub mutation is only applicable for Strings, skipping", :field=>"message", :value=>nil, :level=>:debug, :file=>"logstash/filters/mutate.rb", :line=>"322", :method=>"gsub"}
:message=>"Exception in filterworker", "exception"=>#<LogStash::ConfigurationError: Only String and Array types are splittable. field:message is of type = NilClass>
Mon tableau JSON est:
{
"data": [
{
"appName": "DemoApp",
"appVersion": "1.1",
"deviceId": "1234567",
"deviceName": "moto e",
"deviceOSVersion": "5.1",
"packageName": "com.DemoApp",
"message": "testing null pointer exception",
"errorLog": "null pointer exception"
},
{
"appName": "DemoApp",
"appVersion": "1.1",
"deviceId": "1234567",
"deviceName": "moto e",
"deviceOSVersion": "5.1",
"packageName": "com.DemoApp",
"message": "testing illegal state exception",
"errorLog": "illegal state exception"
}
]
}
ma config logstash est:
input {
http {
codec => "plain"
}
}
filter{
json {
source => "message"
}
mutate { gsub => [ "message", "},", "shr" ] }
split {
terminator => "shr"
field => "data"
}
}
}
output {
stdout { codec => "json" }
gelf{
host => localhost
facility => "%{type}"
level =>["%{SeverityLevel}", "INFO"]
codec => "json"
}
file{
path => "/chroot/result.log"
}
}
Toute aide serait appréciée. Logstash possède un champ de métadonnées par défaut, appelé ,
Je pense que vous pourriez échapper des caractères spéciaux dans la regex: 'mutate {gsub => [" message "," \} \, \ r \ n \ r \ n \ {"," \} shr \ {"] } ' – Kadir
@Kadir J'ai essayé votre suggestion ci-dessus aussi .. Mais je reçois toujours les mêmes erreurs. –