2016-08-30 3 views
0

i haben 3 Knoten Setupjson Senden von einem zu einem anderen logstash

10.xx1 - Anwendung und filebeat 10.xx2 - Maschine zum Parsen und logstash 10.xx3 - unter zentralisierter logstash Knoten, von wo wir müssen Nachrichten in elastische Suche

in 10.xx2 schieben, wenn ich den Ausgabe-Codec auf stdout setze, kann ich die Nachrichten sehen, die von 10.xx1 kommen.

Jetzt muss ich alle Json-Nachrichten von 10.x.x.2 zu 10.x.x.3 weiterleiten. Ich habe versucht, TCP zu verwenden. Aber die Nachrichten werden nicht gesendet.

10.xx2 logstash conf Datei

input { 
    beats { 
    port => 5045 
    } 
} 


output{ 
#stdout { codec => rubydebug } 
tcp{ 
host => "10.x.x.3" 
port => 3389 
} 

10.xx3 logstash conf Datei

input{ 
tcp{ 
host => "10.x.x.3" 
port => 3389 
#mode => "server" 
#codec => "json" 
} 
} 

output{ 
stdout{ codec => rubydebug } 
} 

ist es ein Plugin, das JSON-Daten von einem logstash an einen anderen logstash Server senden können

+0

TCP ist schwierig, als Ausgabe für Json zu arbeiten, wegen der möglichen Newline-Zeichen an Ihrem Json-Ausgang. Eine gute Möglichkeit zu tun, was Sie brauchen, ist die Verwendung von Gelf-Ausgabe (da es eine gültige JSON generiert). –

Antwort

1

Ihre Konfiguration sollte funktionieren.

Aber Sie müssen Careful mit den "Codec" -Eigenschaften sein.

Versuchen Sie zuerst, es auf "Linie" am Ausgang AND die Eingangs-Plugins der beiden Logstash zu setzen.

Und sehen, ob Protokolle eingehen.

Wenn der Codec auf "line" gesetzt ist, haben Sie logischerweise kein Problem, die Protokolle weiterzuleiten.

Dann arbeiten auf den "Json" Eigenschaften.

Vergessen Sie nicht, dass Sie den Debug-Modus von logstash mit dem Argument --debug aktivieren kann, und Sie können mit den Argumenten log: -l logfilename

Wenn Sie anfangen, für „_jsonparsefailure mit dem Codec json Look zu arbeiten "Tags, die erklären könnten, warum Logs zwischen den beiden Logstashs nicht übertragen werden.

Verwandte Themen