Ich muss eine Nachricht per Echo an den Graylog2-Server senden, um zu testen, ob% {@ type} for facility übereinstimmt, aber sobald ich das Echo tue, das in der GELF-Unterstützung enthalten ist, gelangt es nicht zu meinem Graylog2-Server. Wenn graylog2 neu gestartet wird, gehen die entsprechenden Meldungen beim graylog2-Server ein.
Beispiel für die Echo-Nachricht:
echo '{"version": "1.1","host":"example.org","short_message":"A short message that helps you identify what is going on","full_message":"Backtrace here\n\nmore stuff","level":1,"_user_id":9001,"_some_info":"foo","_some_env_var":"bar"}' | nc -w 1 my.graylog.server 12201
Was mache ich falsch? Der Graylog-Debug-Modus zeigt nichts an. Es sieht nicht einmal die Nachricht eingehen.
Bearbeiten:
Der Graylog2-Eingang ist für GELF TCP eingerichtet und zeigt aktive Verbindungen an. Er wird ausgelöst, wenn ich versuche, ein Echo auszulösen, aber nichts erreicht den Server, was die Nachricht betrifft.
-u
Parameter zu nc hinzu.Antworten:
Anscheinend benötigt die GELF-TCP-Eingabe am Ende jeder Gelf-Nachricht ein Nullzeichen.
Also solltest du senden:
Diese Antwort wurde in einer Diskussion über Graylogs Probleme gefunden .
quelle
-u
Parameternc
UDP verwendenAls ich versuchte zu überprüfen, ob eine Logstash-Instanz korrekt auf GELF-Eingaben wartete, habe ich diesen Thread gefunden.
Hier ist ein Befehl, der für Logstash + Gelf über UDP funktioniert:
Beachte das :
echo
ist genug, keine Notwendigkeit für-e
Could not find parser for header: [123, 34]
angezeigt : in Logstash-Protokollenquelle