Ich versuche, JSON-Zeichenfolgen zu Logstash und dann Kafka zu senden, aber ich erfahre JSON-Parse-Fehler aufgrund der doppelten Anführungszeichen in meiner JSON-Datei.Logstash-JSON-Eingabe mit Escape-Doppelzitat
Ich habe eine Reihe von verschiedenen Kombinationen der ersetzen versucht, aber nichts davon funktioniert. Ich bin mir nicht sicher, ob
- Der Fehler bereits in der Eingangsseite der Config auftritt, so ist es weiterhin nicht auf den Filterteil
- Ich bin gerade nicht die Saiten ersetzt richtig
ich erhalte eine json als:
{"message": "This is a \"string with quote"}
Mein logstash conf ist:
input {
tcp {
codec => json { charset => "UTF-8" }
port => 10000
}
}
filter {
json {
source => "message"
}
mutate {
remove_field => ["@version", "@timestamp", "host", "port"]
gsub => [
# replace all backslashes + double quote with space
'body', '\\"', ' '
]
}
}
output {
kafka {
bootstrap_servers => "localhost:9092"
codec => json {charset => "UTF-8"}
topic_id => 'logstash_logs'
}
file {
path => "/usr/share/logstash/test.log"
codec => rubydebug
}
}
Mein rubydebug log ist:
{
"message" => "{\"message\": \"This is a \"string with quote\"}",
"tags" => [
[0] "_jsonparsefailure"
]
}
Was ist die vollständige Quellnachricht? –
Die eigentliche Nachricht, die ich erhalte, sind Nachrichtenartikel von Premium-Nachrichtenquellen. Ein Auszug sieht so aus: {"an": "AFNWS00020150624eb6o0006h", "body": "Die Messe soll das Potential erneuerbarer Energien aufzeigen, ... \ n \ n \" Wir machen ländliche Gebiete elektrisierend, die lang sind Weg vom nationalen Netz \ ", sagte sie. \" Wir haben Solarpaneele priorisiert, um Elektrizität für soziale Infrastrukturen wie Schulen und Krankenhäuser zur Verfügung zu stellen \ ".} – Merelda